2

在 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,但它什么也没做。

4

3 回答 3

13

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 网站上,其中包含有关更灵活解决方案的说明,该解决方案将允许您使用文件/etc/sysconfig来控制守护程序。

于 2016-10-25T15:47:12.060 回答
0

是的,您可以进行配置。但是 docker 解决 docker 问题怎么样?

docker run -d \
--name sherpa \                 
-v /var/run/docker.sock:/tmp/docker.sock \
-p 2375:4550 \
djenriquez/sherpa --allow

代理通过 localhost 上的端口 2375 访问套接字。

于 2017-08-31T22:38:59.300 回答
-2

1、编辑/usr/lib/systemd/system/docker.service在service部分添加两个参数:

# vim /usr/lib/systemd/system/docker.service

[服务]

执行开始=

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

2、重新加载配置,然后重启docker。</p>

# systemctl daemon-reload
# systemctl restart docker

3、检查是否成功,看是否返回如下响应。</p>

# ps -ef|grep docker

根 26208 1 0 23:51?00:00:00 /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

参考Expose the Docker Remote API on Centos 7?

于 2017-07-23T16:33:04.400 回答