Docker容器在现实生活中

时间:2014-02-03 09:07:29

标签: linux virtualization docker lxc

我一直在关注这些教程并且已经使用Docker进行了几天的试验,但我找不到任何“真实世界”的用法示例..

我如何从外面与我的容器沟通?

我能找到的所有示例都以一个或多个容器结束,它们可以与其他人共享端口,但主机外部没有人可以访问其公开的端口。

拥有这样的容器的重点不在于,至少有一个容器需要从外面进入吗?

我找到了一个名为pipework(https://github.com/jpetazzo/pipework)的工具,它可能会帮助我解决这个问题。但是,这是每个人都在测试Docker生产他们正在使用的工具吗?

让外面与我的容器交谈需要“黑客”吗?

2 个答案:

答案 0 :(得分:5)

您可以使用参数-p将容器的端口公开给主机。

例如:

  sudo docker run -p80:8080 ubuntu bash

将容器的端口8080绑定到主机的端口80上。

因此,您可以使用主机的URL从外部访问您的容器:

  http://you.domain -> losthost:80 -> container:8080

那是你想做的吗?或许我错过了一些东西

(参数-expose仅将端口暴露给其他容器(不是主机))

答案 1 :(得分:3)

这篇(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解决了它..