我如何在 Centos 7 上公开 Docker 远程 API?
How do i expose the Docker Remote API on Centos 7?
在 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 但它没有任何作用。
由 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
这实际上记录在 this document 的 Docker 网站上,其中包括更灵活的解决方案的说明,允许您使用 /etc/sysconfig
中的文件来控制守护程序。
1、编辑/usr/lib/systemd/system/docker.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。
# systemctl daemon-reload
# systemctl restart docker
3、检查是否成功,看是否有return下面的响应。
# 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
是的,您可以进行配置。但是 docker 问题的 docker 解决方案怎么样?
docker run -d \
--name sherpa \
-v /var/run/docker.sock:/tmp/docker.sock \
-p 2375:4550 \
djenriquez/sherpa --allow
代理通过本地主机上的端口 2375 访问套接字。
在 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 但它没有任何作用。
由 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
这实际上记录在 this document 的 Docker 网站上,其中包括更灵活的解决方案的说明,允许您使用 /etc/sysconfig
中的文件来控制守护程序。
1、编辑/usr/lib/systemd/system/docker.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。
# systemctl daemon-reload
# systemctl restart docker
3、检查是否成功,看是否有return下面的响应。
# 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
是的,您可以进行配置。但是 docker 问题的 docker 解决方案怎么样?
docker run -d \
--name sherpa \
-v /var/run/docker.sock:/tmp/docker.sock \
-p 2375:4550 \
djenriquez/sherpa --allow
代理通过本地主机上的端口 2375 访问套接字。