红联Linux门户
Linux帮助

修改/etc/default/docker文件不生效的解决办法

发布时间:2017-05-07 09:39:53来源:blog.csdn.net/sch0120作者:shichen
问题:修改/etc/default/Docker文件重启服务后不生效。
 
环境:
1.Ubuntu Server 16.04.1
2.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
 
本文永久更新地址:http://www.linuxdiyf.com/linux/30584.html