1.查询时候有安装旧版docker 有的话卸载
rpm -qa | grep docker
#卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-selinux
- 配置Docker的yum库
首先要安装一个yum工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#安装成功后,执行命令,配置Docker的yum源(已更新为阿里云源):
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
#更新yum,建立缓存
sudo yum makecache fast
- 安装Docker
最后,执行命令,安装Dock
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 启动和校验
# 启动Docker
systemctl start docker
# 查看Docker状态
systemctl status docker
# 停止Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机自启
systemctl enable docker
# 执行docker ps命令,如果不报错,说明安装启动成功
#查看正在运行的容器
docker ps
- 配置镜像加速
# 创建目录
rm -f /etc/docker/daemon.json
# 复制内容
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://mirrors.tuna.tsinghua.edu.cn",
"http://mirrors.sohu.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://ccr.ccs.tencentyun.com",
"https://docker.m.daocloud.io",
"https://docker.awsl9527.cn"
]
}
EOF
# 重新加载配置
systemctl daemon-reload
# 重启Docker
systemctl restart docker
6.查询进程 kill进程 安装之前 systemctl status nginx(安装之前查一下运行状态 再kill避免安装失败 以nginx为例)
ps -ef | grep nginx
kill -9 86339 86342

image.png
安装Nginx(默认挂载后面章节会有指定挂载目录 和 配置docker Compose 主要使用dockerCompose)
# 第1步,去DockerHub查看nginx镜像仓库及相关信息
# 第2步,拉取Nginx镜像 (比较耗时)
docker pull nginx:1.20.2
# 第3步,查看镜像
docker images
# 第4步,创建并允许Nginx容器
#docker run -d --name nginx -p 80:80 nginx 是最新的版本
docker run -d --name nginx -p 80:80 nginx:1.20.2
# 第5步,查看运行中容器
docker ps
# 也可以加格式化方式访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
# 第6步,访问网页,地址:http://虚拟机地址
# 第11步,查看容器详细信息
docker inspect nginx
# 第12步,进入容器,查看容器内目录
docker exec -it nginx bash
#退出容器进入宿主机
exit
save 保存 和 load
#save 保存
[root@test ~]# docker save -o nginx-1.20.2.tar nginx:1.20.2
[root@test ~]# ll
总用量 142452
-rw------- 1 root root 145870336 4月 28 09:59 nginx-1.20.2.tar
执行save后会得到nginx-1.20.2.tar镜像 此文件就是后面需要的导入镜像

image.png
下面执行导入镜像操作
首先删除我们的nginx镜像
[root@test ~]# docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE PORTS STATUS NAMES
9db33a31e559 nginx:1.20.2 Exited (0) 2 minutes ago nginx
5b988d9e6f8f mysql:8 33060/tcp, 0.0.0.0:3307->3306/tcp Up 17 hours mysql
[root@test ~]# docker rm 9db33a31e559
9db33a31e559
[root@test ~]# docker rmi 50fe74b50e0d
#查询已经没有运行和nginx镜像了
[root@test ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b988d9e6f8f mysql:8 "docker-entrypoint.s…" 17 hours ago Up 17 hours 33060/tcp, 0.0.0.0:3307->3306/tcp mysql
[root@test ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8 3218b38490ce 4 years ago 516MB
#导入nginx-1.20.2.tar 镜像
[root@test ~]# docker load -i nginx-1.20.2.tar
2edcec3590a4: Loading layer [==================================================>] 83.86MB/83.86MB
9ccbab2746b8: Loading layer [==================================================>] 61.97MB/61.97MB
108a6d6c3e60: Loading layer [==================================================>] 3.072kB/3.072kB
35437a3771fc: Loading layer [==================================================>] 4.096kB/4.096kB
4e498ce5ae6a: Loading layer [==================================================>] 3.584kB/3.584kB
c75c795b7d44: Loading layer [==================================================>] 7.168kB/7.168kB
Loaded image: nginx:1.20.2
[root@test ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.20.2 50fe74b50e0d 4 years ago 141MB
mysql 8 3218b38490ce 4 years ago 516MB
#创建Nginx容器
[root@test ~]# docker run -d --name nginx -p 80:80 nginx:1.20.2
598cf9db0883ed041ff2055a06a25fddd7e9a173769be87e1021affd45a04cec
#查询运行的容器 docker ps -a 是查询停止和运行的所有容器
[root@test ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
598cf9db0883 nginx:1.20.2 "/docker-entrypoint.…" 7 seconds ago Up 6 seconds 0.0.0.0:80->80/tcp nginx
5b988d9e6f8f mysql:8 "docker-entrypoint.s…" 18 hours ago Up 17 hours 33060/tcp, 0.0.0.0:3307->3306/tcp mysql
最后在我们的浏览器中 访问服务器地址 端口默认80可以不用写
成功部署nginx

image.png