升级的过程比较简单明了, docker-ce 的官方文档有比较详细的介绍。 现在把我自己的升级过程介绍一下,并把遇到的问题以及解决办法,也分享一下。
1. 停止原来的所有运行的 docker, #docker stop xxx
2. 删除原来的 docker 软件包,
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
3. 添加新的 Repo:
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
可选
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-test
4. 安装新的 docker-ce,并启动:
yum install docker-ce
systemctl start docker
以上就是一个完整的更新过程。
然而, 在升级以后,发现原来的容器不见了。 解决的办法是: 去 /var/lib/docker/containers/dockxxxxHASHxxxx
修改 hostconfig.json 把其中的 “Runtime”:”docker-runc”
修改成: “Runtime”:”runc”
重启 docker 服务。
其实我们也会在 syslog 里找到这样的报错信息:
dockerd: time=”2018-03-03T11:37:24.024568022+08:00″ level=error msg=”Failed to start container dockxxxxHASHxxxx: no such runtime ‘docker-runc'”
这样,我们就可以找回原来的 docker 了。
# docker container ls -a