如何保证 docker daemon重启,但容器不重启
使用新版本的docker, 比如 1.12.6
然后在/etc/docker/daemon.json
中添加"live-restore": true
选项,比如:
{
"log-level": "warn",
"selinux-enabled": false,
"insecure-registries": [
"10.213.42.254:10500",
"10.209.224.13:10500"
],
"storage-driver": "devicemapper",
"storage-opts": [
"dm.basesize=100G",
"dm.loopdatasize=1T",
"dm.loopmetadatasize=10G",
"dm.thinpooldev=/dev/mapper/docker-thinpool",
"dm.use_deferred_removal=true",
"dm.use_deferred_deletion=true"
],
"live-restore": true,
"exec-opts": [
"native.cgroupdriver=systemd"
]
}
然后在/usr/lib/systemd/system/docker.service
中添加:
# kill only the docker process, not all processes in the cgroup
KillMode=process
这样,我们就可以重启docker daemon,而不影响运行在其中的container了。