在ubuntu上,我可以进入/etc/init/docker.conf
并输入DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
以获取我的浏览器上显示的json数据,但我该如何为Centos执行此操作?
我尝试在/etc/sysconfig/docker
中创建一个文件并将other_args="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock"
放在文件中并重新启动docker但它没有做任何事情。
答案 0 :(得分:12)
Docker corp软件包安装的systemd单元硬编码用于启动docker守护程序的命令行:
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
[...]
不支持从/etc/sysconfig
或其他地方读取文件来修改命令行。幸运的是,systemd为我们提供了改变这种行为所需的工具。
最简单的解决方案可能是使用以下内容创建文件/etc/systemd/system/docker.service.d/docker-external.conf
(确切的文件名无关紧要;它只需以.conf
结尾):
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock
然后:
systemctl daemon-reload
systemctl restart docker
这实际上记录在Docker网站this document中,其中包含更灵活的解决方案的说明,允许您使用/etc/sysconfig
中的文件来控制守护程序。
答案 1 :(得分:0)
是的,你可以做配置的事情。但码头工人解决码头问题怎么样?
docker run -d \
--name sherpa \
-v /var/run/docker.sock:/tmp/docker.sock \
-p 2375:4550 \
djenriquez/sherpa --allow
代理通过localhost上的端口2375访问套接字。
答案 2 :(得分:-1)
1,编辑/usr/lib/systemd/system/docker.service在服务部分添加两个参数:
# vim /usr/lib/systemd/system/docker.service
[服务]
ExecStart =
ExecStart = / usr / bin / dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
2,重新加载配置,然后重启docker。
# systemctl daemon-reload
# systemctl restart docker
3,检查是否成功,看看是否返回以下响应。
# ps -ef|grep docker
root 26208 1 0 23:51? 00:00:00 / usr / bin / dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
的参考资料