Docker 拉取镜像失败问题整理
记录下,使用docker拉取镜像遇到的问题,后续在遇到大家避坑
Docker 拉取镜像出现 missing signature key
说明:Centos带的docker是之前的版本,支撑的功能很少,很多的镜像是拉取不下来的。这时候需要下载新的docker,现在在维护的docker,社区版本是docker-ce,企业版本是docker-ee。由于默认CentOS自带的是早期的版本的docker,所以yum默认也是下旧的docker。
解决方案:
# 停止正在运行的docker
systemctl stop docker
# 卸载旧版docker
yum -y remove docker
yum -y remove docker-client
yum -y remove docker-common
#或者
yum -y remove docker*
#安装新版的docker docker-ce
yum -y install yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
#启动docker
systemctl start docker
# 进行拉取镜像的操作
docker pull Nginx
升级docker或者docker到docker-ce完全保留镜像和容器,不影响原容器使用方法
升级docker或者docker到docker-ce完全保留镜像和容器,不影响原容器使用方法
说明:如果原有已经很多的镜像,产生了很多的容器,现在因下载某个镜像出现问题,那么可以通过覆盖新安装的docker-ce的镜像和容器目录和修改部分参数达到效果
解决方案:
# 停止正在运行的docker
systemctl stop docker
#把旧版的docker目录改一下名称。
mv /var/lib/docker /var/lib/docker-bak
# 卸载旧版docker
yum -y remove docker
yum -y remove docker-client
yum -y remove docker-common
#或者
yum -y remove docker*
#安装新版的docker docker-ce
yum -y install yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
#切记:不要启动docker!!
#安装完docker-ce后,系统会创建新的docker目录,删除新的,如何把备份的改回docker名称。切记:不要启动docker!!
rm -rf /var/lib/docker
mv /var/lib/docker-bak /var/lib/docker
#启动docker
systemctl start docker
# 这个时候展示容器列表已经存在了
docker ps -a
# 然后重启容器
docker restart 容器id
# 注意这时候会报错,因为新版docker 和旧版docker 运行时找的文件文件名不一样,所以还要修改下容器启动的文件名
grep -rl 'docker-runc' /var/lib/docker/containers/ | xargs sed -i 's/docker-runc/runc/g'
# 最后在进行重启docker就可以了
systemctl restart docker
目前这个旧版的docker所产生的的容器已经被迁移到新的docker里面了,可以正常是永不改变原来的文件