如何从远程主机访问在主机上的docker上运行的进程

如何从远程主机B访问或连接在主机A上的docker上运行的进程

考虑一个IP地址为192.168.0.3的Host A,它在端口3999上的docker上运行一个应用程序。 如果我想要从同一子网中的IP 192.168.0.4的远程机器访问该应用程序。

准确地说,我在服务器上运行Kafka生产者,我试图接收使用Kafka-console-Consumer。

  • 使用--net=host run你的容器,它将使用主机的networking堆栈,然后你可以连接到容器内运行的应用程序,就像它直接在主机上运行一样。
  • 端口映射,使用选项-p将容器内的端口映射到主机端口。 例如docker run -d -p <container port>:<host port> <image> ,则可以连接到<host>:<host port>来连接容器内的应用程序
  • Docker的内置多主机networking 。 在早期版本中,networking驱动程序与docker的核心是隔离的,您必须使用第三方工具(如flannel或weave)来进行多主机连接,但是从版本1.9开始,它已经被合并到docker中 。 你可以按照它的指导进行设置。

希望这是有帮助的:-)

首先,您需要将Docker容器的端口绑定到主机A:

docker运行-d -p 3999:3999 kafka-producer

然后,您需要使用IP:端口从主机B访问主机A.

 192.168.0.3:3999