我想通过docker-in-docker设置与父Docker集装箱中的一个小孩码头集装箱联网。Docker集装箱网络与Docker-in-Docker
假设我试图连接到一个简单的Apache httpd服务器。当我在我的主机上运行的httpd容器,一切工作正常:
asnyder:~$ docker run -d -p 8080:80 httpd:alpine
asnyder:~$ curl localhost:8080
<html><body><h1>It works!</h1></body></html>
但是,当我做同样的从泊坞窗功能于泊坞窗的设置,我得到一个Connection refused
错误:
asnyder:~$ docker run -d --name mydind --privileged docker:dind
asnyder:~$ docker run -it --link mydind:docker docker:latest sh
/# docker run -d -p 8080:80 httpd:alpine
/# curl localhost:8080
curl: (7) Failed to connect to localhost port 8080: Connection refused
我尝试了几次改变,但没有运气。指定0.0.0.0
接口:
asnyder:~$ docker run -d --name mydind --privileged docker:dind
asnyder:~$ docker run -it --link mydind:docker docker:latest sh
/# docker run -d -p 0.0.0.0:8080:80 httpd:alpine
/# curl 0.0.0.0:8080
curl: (7) Failed to connect to 0.0.0.0 port 8080: Connection refused
使用主机网络:
asnyder:~$ docker run -d --name mydind --privileged docker:dind
asnyder:~$ docker run -it --link mydind:docker docker:latest sh
/# docker run -d --network host httpd:alpine
/# curl localhost:80
curl: (7) Failed to connect to localhost port 80: Connection refused
出人意料的是,我无法找到这个任何现有的文章。有人在这里有一些见解吗?
谢谢!
让我先问你,如果你确定你想要码头泊位设置?先阅读[this](http://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/)博文。 – JonesV
@JonesV我避免进入问题的具体情况,以保持它的一般性,但因为你问... 我正在写一个[GitLab CI管道作业](https://docs.gitlab.com/ee/CI/YAML /)。 GitLab CI中的作业在您可以指定的Docker容器内运行。我正在编写一个基于某些HTML生成PDF报告的作业,并且我想利用现有的Docker映像来执行此操作。所以,我有一个码头泊位的情况。 我希望这有助于澄清:) –
恐怕我无法帮助码头泊位设置。我只是想确保你知道博客文章中提到的要点=)。 – JonesV