1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-scan-plugin \
docker-ce-cli \
docker-ce
删除目录:rm -rf /var/lib/docker
2.安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-utils提供了yum-config-manager这个工具可以用来方便地添加和管理 YUM 软件源
device mapper存储驱动程序需要device-mapper-persistent-data和lvm2。
Docker 使用 device mapper 作为存储驱动之一,用于管理容器的文件系统层
3.设置yum源仓库
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.查看yum源仓库支持的docker版本
yum list docker-ce --showduplicates | sort -r
5.安装docker
containerd.io:它负责管理和运行容器。它提供了容器的生命周期管理、镜像管理、网络管理等功能
docker -ce:Docker守护进程,这是完成所有管理工作的部分。
docker -ce- cli:用来控制守护进程的CLI工具,可以用于管理和操作Docker容器、镜像、网络等
注意:指定版本安装时repo源对docker-ce-cli的版本支持,存在同版本支持docker-ce,docker-ce-cli却不支持的情况,例如docker-ce有18.06.03版本但是docker-ce-cli却没有这个版本
yum install docker-ce-18.09.6 docker-ce-cli-18.09.6 containerd.io -y
6.启动docker
systemctl start docker
systemctl enable docker
docker --version
7.替换docker hub仓库
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}
备注
1.错误:软件包:3:docker-ce-19.03.12-3.el7.x86_64 (docker-ce-stable)
需要:container-selinux >= 2:2.74
错误:软件包:containerd.io-1.6.33-3.1.el7.x86_64 (docker-ce-stable)
需要:container-selinux >= 2:2.74
解决:增加yum源,安装 container-selinux
yum-config-manager --add-repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install container-selinux
2.docker: Error response from daemon: Get https://registry-1.docker.io/v2/
原因:配置的阿里云加速镜像现在停用失效,导致网络无法访问
解决:加入以下镜像,然后重启docker
{
"registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}
[root@ceshi docker]# systemctl daemon-reload
[root@ceshi docker]# systemctl restart docker