在 CentOS 7 上升级 docker

Posted

技术标签:

【中文标题】在 CentOS 7 上升级 docker【英文标题】:Upgrade docker on CentOS 7 【发布时间】:2014-12-15 20:16:36 【问题描述】:

我正在运行 centos 7 并使用 epel 包在主机上安装了 docker:

yum install epel-release
yum install docker

但是docker版本是-Docker version 0.11.1-dev, build 02d20af/0.11.1

docker 最新的稳定分支是 1.2

我在这台主机上运行了几个容器,那么如何在这台主机上安全地更新 docker?

yum update docker 不会更新到最新版本,因为 epel repo 有旧包。

【问题讨论】:

这里是关于如何在 CentOS 7 上安装 Docker 1.5 的另一个答案:***.com/questions/28961080/… 【参考方案1】:

请注意,当前 Docker 的稳定版本实际上是 1.3,而不是 1.2。 请参阅Docker CHANGELOG 以发现最新版本。

在升级您的 docker 主机之前,您可能需要备份您拥有的一些 docker 镜像,尤其是那些从 docker commit 命令发出的镜像。为此,请查看docker export 命令。 您可能还想备份容器的卷。为此,请查看Docker user guide on data volumes。

一旦您确信您拥有最终重新开始所需的所有备份,您就可以继续升级您的 Docker 守护程序。

在Docker installation guide for CentOS 7 上,如果你想要最新的,建议从binaries 安装 docker。我建议您按照这些说明安装最新的 docker。 Docker 现在通过 yum 包管理器提供更新。

完成后,使用docker images 命令验证您是否仍有 Docker 映像,并使用docker ps 检查您的容器。如果缺少一些,请从备份中重新创建它们。

如果您从自定义 Dockerfile 中创建了 docker 镜像,您还需要重新构建这些镜像以检查新的 Docker 守护程序是否存在 Dockerfile 问题。在 Docker 0.11.1 和 1.3 之间有一个big gap,并且为 Dockerfiles 语法带来了修复和新功能。


这里是你准备好升级 docker 后要运行的命令的详细信息:

# stop the docker service
$ sudo service docker stop

# download the latest docker binary and replace the current outdated docker
# DEPRECATED WAY TO UPGRADE DOCKER: $ sudo wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O /usr/bin/docker
$ sudo yum update docker-engine

# start the docker service
$ sudo service docker start

# check the version
$ sudo docker version

# check the images and containers
$ sudo docker images
$ sudo docker ps
$ sudo docker ps -a

【讨论】:

如果我卸载 docker(通过 yum 安装的那个),图像是否仍然存在,它们会被清除吗? 我能够在 CentOS 7 上升级 docker,而不会丢失图像或容器。我用我用来升级 docker 的命令编辑了我的答案。请注意,您仍然需要进行备份,以防万一遇到困难。 警告!! 这个答案会破坏 CentOS 上的 Docker!最新的文件是 404 错误!不要使用它! 感谢您的提醒!我编辑了我的答案,以便现在使用 yum 完成升级 我同意你的看法。这已经破坏了我服务器上的 docker。【参考方案2】:

更新以升级 docker CentOS 7.4

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux  docker-engine-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce


sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

参考:

https://docs.docker.com/install/linux/docker-ce/centos/

【讨论】:

如果您不确定,请勿使用此说明。您可能会丢失 docker 在yum install docker-ce 步骤上出现错误:包:docker-ce-18.06.0.ce-3.el7.x86_64 (docker-ce-stable) 要求:container-selinux >= 2.9 这是我刚刚运行的命令,它似乎有效:yum update docker-ce docker-ce-cli containerd.io 这对我有用,但接受的答案没有【参考方案3】:

取自 Docker 文档:

要升级 Docker Engine - Community,请按照安装说明选择您要安装的新版本。

安装步骤链接:https://docs.docker.com/install/linux/docker-ce/centos/

【讨论】:

【参考方案4】:

试试这些命令:

sudo yum update -y

升级前停止 docker

sudo service docker stop
sudo yum upgrade docker*

重新开始

sudo service docker start

检查版本

sudo docker version

【讨论】:

在一切之前yum update -y 怎么样 这是个好主意:)

以上是关于在 CentOS 7 上升级 docker的主要内容,如果未能解决你的问题,请参考以下文章

在CentOS 7上升级docker

如何在CentOS 6.5上升级PHP版本

如何在CentOS 6.5上升级PHP版本

在centos6.5上升级php-libxml版本到2.9.0

在 XAMPP 1.8.3 windows 7 安装上升级 PHP

在 XAMPP 1.8.3 windows 7 安装上升级 PHP