我一直在跟随教程,并试用Docker几天,但我找不到任何“真实世界”的使用示例..
我怎样才能从外面与我的容器沟通?
我能find的所有例子都有一个或多个容器,它们可以和其他人共享端口,但是主机之外没有人可以访问他们暴露的端口。
容器是不是这样的,至less有一个容器需要从外面访问?
我find了一个名为pipework的工具( https://github.com/jpetazzo/pipework ),这可能会帮助我。 但是,这是每个人都在testingDocker生产他们正在使用的工具吗?
为了让外部与我的容器交谈,是否需要“黑客”?
您可以使用参数-p
将容器的一个端口暴露给主机。
例如:
sudo docker run -p80:8080 ubuntu bash
将绑定您的容器的端口8080到主机的端口80。
因此,您可以使用主机的URL从外部访问您的容器:
http://you.domain -> losthost:80 -> container:8080
那是你想做的吗? 或者,也许我错过了什么
(参数-expose
只将端口暴露给其他容器(不是主机))
这( https://blog.codecentric.de/en/2014/01/docker-networking-made-simple-3-ways-connect-lxc-containers/ )博客文章解释了问题和解决方案。
基本上,它看起来像管道( https://github.com/jpetazzo/pipework )是暴露容器端口到外面的方式…希望这将得到尽快整合..
更新:在这种情况下,iptables是怪,有一个规则,阻止转发的流量。 添加-A FORWARD -i em1 -o docker0 -j ACCEPT
解决了它..