从`docker`升级到`docker-ce`时,我可以保存我的运行容器吗?

问题描述:

我有一个CentOS 7盒子,其中默认的Docker 1.12包(docker)运行了大约十几个容器。根据这些instructions,我想升级到其存储库中提供的最新Docker包(docker-ce)。从`docker`升级到`docker-ce`时,我可以保存我的运行容器吗?

但是,我必须首先卸载docker软件包。这会垃圾我的运行容器?如果是这样,是否有避免这种情况?

其实Docker 1.12(只是你的情况)开始有一个功能,叫做live-restore

https://docs.docker.com/engine/admin/live-restore/#enable-the-live-restore-option

与码头工人引擎1.12开始,你可以这样,如果守护程序变得不可用的容器仍然正常运行配置守护进程。实时恢复选项有助于减少由于守护进程崩溃,计划停机或升级导致的容器停机时间。

要启用它,请用此更新daemon.json

{ 
"live-restore": true 
} 

然后,您只需发送一个SIGHUP到码头引擎。

请务必做好所有必要的备份,以防万一。

+0

我该如何安全地发送该信号,以及如何知道是否需要新配置? –

+1

您可以执行'kill -HUP '来检查是否使用了新的配置,执行'lsof '并检查是否列出了正确的配置文件。 –