ubuntu16.04下docker修改配置文件不生效解決辦法

因爲要遷移服務,我重新搭建了一套環境,然後想在搭建的本地鏡像庫裏把需要的服務pull下來,結果出現了配置文件不生效的問題,具體如下:

配置文件添加:

root@ubuntu:~# vim /etc/default/docker
DOCKER_OPTS="-H 0.0.0.0:2375 --insecure-registry ip:5000"
root@ubuntu:~#

重啓:

root@ubuntu:~# /etc/init.d/docker restart
[ ok ] Restarting docker (via systemctl): docker.service.
root@ubuntu:~#

查看服務:

root@ubuntu:~# ps -ef|grep docker
root      7769     1  4 14:46 ?        00:00:00 /usr/bin/dockerd -H fd://
root      7776  7769  0 14:46 ?        00:00:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root      7889  4143  0 14:47 pts/0    00:00:00 grep --color=auto docker
root@ubuntu:~#

發現添加的那一句並沒有生效,百度了一下,找到了一種方法:

root@ubuntu:~#  mkdir -p /etc/systemd/system/docker.service.d
root@ubuntu:~# cat /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
root@ubuntu:~#
root@ubuntu:~# systemctl daemon-reload
root@ubuntu:~# service docker restart
root@ubuntu:~# ps -ef|grep [d]ocker
root      7969     1  2 14:58 ?        00:00:00 dockerd -H fd:// -H 0.0.0.0:2375 --insecure-registry ip:5000
root      7982  7969  0 14:58 ?        00:00:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root@ubuntu:~#

可以看到添加的那一句已經生效了。


有的版本可能此方法並不適用,今天就遇到了這種問題,用這種方法服務會報錯,通過百度得到了另一種方法:

注意,Ubuntu下文件路徑是/lib/systemd/system/docker.service

vim  /lib/systemd/system/docker.service
在[Service]模塊添加內容
EnvironmentFile=-/etc/default/docker
-的意思就是忽略錯誤
然後修改[Service]模塊中ExecStart,添加$DOCKER_OPTS,如下
ExecStart=/usr/bin/dockerd -H fd://   $DOCKER_OPTS
還有一種方法是可以不添加EnvironmentFile,直接修改ExecStart,在fd://後面添加你需要添加的東西,如我
ExecStart=/usr/bin/dockerd -H fd://  -H 0.0.0.0:2375 --insecure-registry ip:5000  
記住是用空格分割。
最後重載生效

systemctl daemon-reload
service docker restart







如果覺得此文檔幫助到了你,請點贊評論一下,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章