前言
有时候你会发现 有的docker容器安装后无法启动 ,这可能是docker版本太老,故升级下docker就行
先更新与更换下源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
yum -y update
删除与安装
暂停:
systemctl stop docker
查看当前版本
rpm -qa | grep docker
卸载软件包:
yum erase docker \
docker-client \
docker-compose \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
直接yum安装:
yum install -y yum-utils device-mapper-persistent-data lvm2
可选—直接拉取 yum安装失败时使用:
curl -fsSL https://get.docker.com/ | sh
可选—yum安装到指定版本:
yum list docker-ce --showduplicates | sort -r
安装到自己想要的版本docker-ce-xxxxx:
yum install docker-ce-xxxxx
重启docker:
systemctl daemon-reload
systemctl restart docker
开机自启:
systemctl enable docker
可选—版本查看:
docker version
解决升级Docker后重启容器无法启动:
cd /var/lib/docker/containers
grep -rl 'docker-runc' /var/lib/docker/containers/ | xargs sed -i 's/docker-runc/runc/g'
systemctl restart docker
docker镜像列表存在但删除显示 No such image
原因1:
容器还存在是无法删除镜像的解决步骤:
1.停掉容器(docker stop 容器ID或容器名称)
2.删除容器(docker rm 容器ID或容器名称)
3.删除镜像(docker rmi 镜像ID或镜像名称:版本号)
原因2:
容器不存在,删除镜像时候提示 No such image
docker 镜像文件是存在/var/lib/docker/image/overlay2/imagedb/content/sha256目录下的
解决:
删除/var/lib/docker/image/overlay2/imagedb/content/sha256目录下相应的镜像文件即可