在现实生活中的Docker容器

我一直在跟随教程,并试用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解决了它..