Docker安装及配置看这一篇就够了

238 阅读3分钟

「这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战」。

安装

安装是基于centos7环境的 其他环境的安装也可以看官方文档 centos安装文档 docs.docker.com/engine/inst…

# 如果安装过Docker 需要卸载,如果没有可以跳过
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
               
               
# 安装yum-utils工具包
yum install -y yum-utils
               
# 设置yum存储库 即从该地址下载Docker
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 上面是官网地址 由于墙,比较慢 换为aliyun
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
   
#安装
yum install docker-ce docker-ce-cli containerd.io -y

#启动docker 
systemctl start docker

#开机自启docker 可选命令--now 立即启动docker --now 相当于 systemctl start docker
systemctl enable docker --now 

基本操作

配置镜像加速

配置Docker阿里云镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://z3j5f3e3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

DockerHub

DockerHub是Docker的公共镜像仓库,基本上各大软件的镜像都在这里可以找到 hub.docker.com/search?type… 找到镜像后,有对应镜像的版本和拉取/启动命令 以nginx为例 image.png

常用命令

镜像

# docker帮助命令
docker --help

# docker 搜索镜像 相当于在docker hub上搜索
docker search 

# docker 拉取镜像 不写版本号默认latest
docker pull 镜像名[:版本号]
example:
docker pull nginx = docker pull nginx:latest

# docker 查看镜像
docker images

# docker 删除镜像 不写版本号默认latest
docker rmi 镜像名[:版本号]


容器

# docker 启动容器 -d 后台运行 --name 给容器起个名字(容器的名字不可重复) -p端口映射 --restart=always docker重启后继续启动该容器 -v 数据挂载
docker run -d --name=[容器名] -p 主机端口:容器端口 -v [主机目录]:[容器目录] --restart=always [镜像id/名字]

# docker 停止容器
docker stop [容器id/名字]

# docker 重新启动容器
docker start [容器id/名字]

# docker 删除容器
docker rm [容器id/名字]

# docker 更新容器启动命令 端口无法修改
docker update [容器id] --restart=always

# docker 查看容器 -a 查询所有容器 不加-a 默认查询运行状态的容器
docker ps 


进入容器

docker exec -it [容器id] /bin/bash

将修改后的容器提交为镜像

# docker 提交镜像 -a 作者 -m 提交信息 要打包镜像的容器id 自定义的镜像名字:版本
docker commit -a [作者] -m [提交信息] [容器id] [自定义的镜像名字:版本]

example:
	docker commit -a zhangyao -m "首页变化" 3b009d818c40 mynginx:v1.0

推送镜像到dockerHub

dockerhub需要先注册 并在dockerhub上建立仓库

image.png 输入仓库名 image.png

# 此处以推动到dockerHub为例,其他私有镜像库大同小异

# 登录dockerHub
docker login
# 输入用户名/密码

# docker 打标签 打标签的意义在于将本地的镜像新打一个标签使其与你新建立的存储库的路径一致
docker tag local-image:tagname new-repo:tagname
example:
	docker tag mynginx:v1.0 zy963613606/nginx:v1.0

# docker 推送 
docker push new-repo:tagname
example:
	docker push zy963613606/nginx:v1.0
  
# docker 退出登录
docker logout

容器相关操作命令

# 查看docker 日志
docker logs [容器id]

# docker 容器与宿主机复制文件 两个参数可以互换位置 第一个参数是from  第二个参数是to
docker cp [容器id]:[文件路径] [宿主机路径]