因为要迁移服务,我重新搭建了一套环境,然后想在搭建的本地镜像库里把需要的服务pull下来,结果出现了配置文件不生效的问题,具体如下:
配置文件添加:
root@ubuntu:~# vim /etc/default/dockerDOCKER_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 dockerroot 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-runcroot 7889 4143 0 14:47 pts/0 00:00:00 grep --color=auto dockerroot@ubuntu:~#
发现添加的那一句并没有生效,百度了一下,找到了一种方法:
root@ubuntu:~# mkdir -p /etc/systemd/system/docker.service.droot@ubuntu:~# cat /etc/systemd/system/docker.service.d/Using_Environment_File.conf[Service]EnvironmentFile=-/etc/default/dockerExecStart=ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTSroot@ubuntu:~#root@ubuntu:~# systemctl daemon-reloadroot@ubuntu:~# service docker restartroot@ubuntu:~# ps -ef|grep [d]ockerroot 7969 1 2 14:58 ? 00:00:00 dockerd -H fd:// -H 0.0.0.0:2375 --insecure-registry ip:5000root 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-runcroot@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-reloadservice docker restart
如果觉得此文档帮助到了你,请点赞评论一下,谢谢!