Docker 1.8.2-10.el7.centos已经安装,能够在CentOS7上运行。
为了升级docker,阅读了这篇文章 ,并发布了以下命令:
curl -L https://get.docker.com/builds/Linux/x86_64/docker-latest > /usr/bin/docker; chmod +x /usr/bin/docker curl -L https://raw.githubusercontent.com/docker/docker/master/contrib/init/systemd/docker.service > /usr/lib/systemd/system/docker.service curl -L https://raw.githubusercontent.com/docker/docker/master/contrib/init/systemd/docker.socket > /usr/lib/systemd/system/docker.socket 问题
docker工人启动时:
systemctl start docker
它似乎挂起和/ var / log / messages指示:
Feb 11 00:22:01 localhost systemd: Device dev-disk-by\x2duuid-f00f4f0a\x2dba57\x2d468b\x2dba82\x2d72f1bb087bbb.device appeared twice with different sysfs paths /sys/devices/virtual/block/loop0 and /sys/devices/virtual/block/dm-6 Feb 11 00:22:05 localhost docker: time="2016-02-11T00:22:05.977110830+01:00" level=info msg="calculated checksum for layer 26de6fe292b2275378ce421742105813ee98fb49a5e0e45c1fd89e20eedc2c31: sha256:0c42efc496d9944258fb38ccfa64f53c32433a24daa3ad64144e48c5deb1c78c" Feb 11 00:22:06 localhost kernel: EXT4-fs (dm-8): mounted filesystem with ordered data mode. Opts: (null) Feb 11 00:22:06 localhost systemd-udevd: conflicting device node '/dev/mapper/docker-253:0-68595821-51009a2811797c49222fd5f9cb9e38fbe4fca9cf2a7fcfb1151d34c0b545a42a' found, link to '/dev/dm-8' will not be created Feb 11 00:22:06 localhost systemd: Device dev-disk-by\x2duuid-f00f4f0a\x2dba57\x2d468b\x2dba82\x2d72f1bb087bbb.device appeared twice with different sysfs paths /sys/devices/virtual/block/loop0 and /sys/devices/virtual/block/dm-8
讨论
奇怪的是,二进制文件已经升级:
[root @ localhost]#docker -v Docker版本1.10.0,build 590d5108
但服务无法启动。
curl -L https://get.docker.com/builds/Linux/x86_64/docker-1.9.0 > /usr/bin/docker; chmod +x /usr/bin/docker curl -L https://get.docker.com/builds/Linux/x86_64/docker-1.9.0 > /usr/bin/docker; chmod +x /usr/bin/docker 题
如何在CentOS7上将Docker升级到1.10.0?
我有同样的问题,今天我终于成功地启动docker1.10。 我的问题是docker的起始命令。 似乎我用devicemapper存储驱动程序和docker 1.10驱动程序使用devicemapper是不一样的。
这是我试过的。
当我放弃升级docker1.10一次,降级到1.10时,1.9不会启动。 我删除这些文件后开始。 这可能不会影响你的问题,但我决定从现在开始升级docker之前删除它们。
mkdir /var-lib-docker-network-files mv /var/lib/docker/network/files/* /var-lib-docker-network-files
ExecStart覆盖为您的自定义命令。 你可以在这里看到默认的启动命令。
vi /lib/systemd/system/docker.service
我的官方仓库完全一样。
载荷大小://github.com/docker/docker/blob/master/contrib/init/systemd/docker.service
应该是这样的;
ExecStart=/usr/bin/docker daemon -H fd://
这个命令对我不起作用。 所以我做了一个文件,在这里覆盖命令作为一个包装的conf文件;
vi /etc/systemd/system/docker.service.d/docker.conf [Service] ExecStart= ExecStart=/usr/bin/docker daemon -s devicemapper -H fd://
确保在启动docker之前重新加载systemd。
systemctl daemon-reload service docker start
我在这里看到另一个ExecStart行。
vi /etc/systemd/system/docker.service.d/docker.conf [Service] ExecStart= ExecStart=docker daemon -D -s overlay
虽然这工作,并使docker1.10开始,我的所有docker图像已经消失。 由于docker images没有返回,我非常恼火。 但是我在/var/lib/docker/devicemapper/仍然有很多真实的映像文件,所以我觉得这个命令会改变一个奇怪的目录。 然后我得到了答案,它是devicemapper 。
你可以在这里看到细节。 我们可能需要了解这个守护进程。
如果您可以在重新启动后等待一天,您的Docker 1.10将会启动。
当您第一次启动Docker Engine 1.10时,所有当前的图像,标签和容器都会自动迁移到新的基础上。 在加载容器之前,守护程序将计算当前数据的所有需要的校验和,并在完成之后,所有图像和标签都将具有全新的安全ID。
虽然这是一个简单的操作,但是如果您有大量的图像数据,那么计算文件的SHA256校验和可能会花费一些时间。 平均而言,您应该假设迁移者可以以100MB / s的速度处理数据。 在此期间,您的Docker守护进程将不会准备好响应请求。
请看这里 。