docker将套接字绑定到外部端口

时间:2015-09-02 12:49:01

标签: linux sockets networking docker

我正在使用码头工具。在docker里面我有app将侦听套接字绑定到外部机器的ip(我运行docker的机器的ip)。有什么方法可以使这样的侦听套接字工作?这是绑定到外部IP地址(192.168.1.2)而不是docker的eth0(172.17.0.248)

2 个答案:

答案 0 :(得分:2)

当您运行容器时,将端口映射到要在其上访问的外部端口。 docker run -p 80:80 myapp这将允许您访问192.168.1.2:80的docker容器。命令格式为-p {external port}:{internal app port}。

进一步澄清。要访问容器内的任何应用程序,您需要公开端口,请参阅this。基本上,您将端口从容器映射到主机o / s。

示例:您的容器中有一个在端口8080上运行的应用程序,但您希望在端口8000上使用主机IP访问它。您可以像docker run -p 8000:8080 myapp那样运行您的应用程序。这将端口8080暴露给您的主机o / s作为端口8000,此时您可以在{host ip}:8000处访问它。

答案 1 :(得分:0)

好的修理自己: 通过" ip addr add"添加新的ip,然后使用iptable规则将传入的数据包预先路由到该ip,这就是全部:)

相关问题