环境:
- Ubuntu Server 16.04.1
- Docker 1.12.3
过程演示及解决办法:我们可以通过修改/etc/default/docker文件实现对Docker守护进程的启动配置。
schen@scvmu01:~$ sudo vi /etc/default/docker
schen@scvmu01:~$ grep "^DOCKER_OPTS" /etc/default/docker
DOCKER_OPTS="--label name=docker_server_1"
schen@scvmu01:~$ sudo service docker restart
schen@scvmu01:~$ ps -ef | grep docker
root 28238 1 13 22:39 ? 00:00:01 /usr/bin/dockerd -H fd://
root 28244 28238 0 22:39 ? 00:00:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc
schen 28333 27696 0 22:39 pts/0 00:00:00 grep --color=auto docker
这时我们发现设置并没有生效,这是因为/etc/default/docker文件是为upstart和SysVInit准备的(正如文件第一行注释所言),而使用service命令时并不会读取它,因此我们还需要做如下更改:
schen@scvmu01:~$ sudo mkdir -p /etc/systemd/system/docker.service.d
schen@scvmu01:~$ sudo vi /etc/systemd/system/docker.service.d/Using_Environment_File.conf
[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS
~
~
schen@scvmu01:~$ sudo systemctl daemon-reload
schen@scvmu01:~$ sudo service docker restart
schen@scvmu01:~$ ps -ef | grep docker
root 4287 1 0 21:52 ? 00:00:02 dockerd -H fd:// --label name=docker_server_1
root 4296 4287 0 21:52 ? 00:00:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc
schen 4395 2377 0 22:07 pts/1 00:00:00 grep --color=auto docker
有关此问题的参考文献:
- https://github.com/docker/docker/issues/9889
- < http://docs.master.dockerproject.org/engine/admin/systemd/>
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2020/05/16 03:37