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

我正在使用docker。 在docker里面我有一个应用程序绑定到外部机器的ip(我有docker运行的机器的ip)的监听套接字。 有什么办法可以让这样的侦听套接字工作? 这是绑定到外部IP地址(192.168.1.2),而不是docker的eth0(172.17.0.248)

在运行容器时,将端口映射到您要连接到的外部端口。 docker run -p 80:80 myapp这将允许您访问docker容器在192.168.1.2:80。 命令格式是-p {外部端口}:{内部应用程序端口}。

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

例如:您的应用程序在您的容器中的端口8080上运行,但您希望通过您的主机ip在端口8000上访问它。您将像docker run -p 8000:8080 myapp一样运行您的应用程序。 这会将端口8080作为端口8000发送到您的主机o / s,您可以在{host ip}:8000处将端口8080发送到您的主机。

好了解决自己:通过“ip addr add”添加新的ip,然后使iptable规则预先传入到该ip的传入数据包,这就是所有:)