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

来源:互联网 发布:ubuntu创建文件夹 编辑:程序博客网 时间:2024/06/04 18:16

问题:修改/etc/default/docker文件重启服务后不生效。

环境:
- Ubuntu Server 16.04.1
- Docker 1.12.3

过程演示及解决办法:

我们可以通过修改/etc/default/docker文件实现对Docker守护进程的启动配置。

schen@scvmu01:~$ sudo vi /etc/default/dockerschen@scvmu01:~$ grep "^DOCKER_OPTS" /etc/default/dockerDOCKER_OPTS="--label name=docker_server_1"schen@scvmu01:~$ sudo service docker restartschen@scvmu01:~$ ps -ef | grep dockerroot     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-runcschen    28333 27696  0 22:39 pts/0    00:00:00 grep --color=auto docker

这时我们发现设置并没有生效,这是因为/etc/default/docker文件是为upstartSysVInit准备的(正如文件第一行注释所言),而使用service命令时并不会读取它,因此我们还需要做如下更改:

schen@scvmu01:~$ sudo mkdir -p /etc/systemd/system/docker.service.dschen@scvmu01:~$ sudo vi /etc/systemd/system/docker.service.d/Using_Environment_File.conf[Service]EnvironmentFile=-/etc/default/dockerExecStart=ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS~~schen@scvmu01:~$ sudo systemctl daemon-reloadschen@scvmu01:~$ sudo service docker restartschen@scvmu01:~$ ps -ef | grep dockerroot      4287     1  0 21:52 ?        00:00:02 dockerd -H fd:// --label name=docker_server_1root      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-runcschen     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/

1 0