Networking 将端口从docker网桥转发到本地网络?

Networking 将端口从docker网桥转发到本地网络?,networking,docker,Networking,Docker,我有一个集装箱在码头上运行。我可以通过172.17.0.1:8140访问它,IP是docker0网桥 172.17.0.1可用于我的电脑,但本地网络上的其他设备均不可用 我想使docker桥上的8140端口可用于我的本地网络 如何从docker桥转发端口,使其在本地网络上可用 您需要在docker run或docker-compose.yml的ports部分中使用-p选项发布端口。端口的格式是docker主机的可选IP(通常为空)、主机上的端口和容器的端口。如果不提供主机端口,将使用随机端口。使

我有一个集装箱在码头上运行。我可以通过172.17.0.1:8140访问它,IP是docker0网桥

172.17.0.1可用于我的电脑,但本地网络上的其他设备均不可用

我想使docker桥上的8140端口可用于我的本地网络


如何从docker桥转发端口,使其在本地网络上可用

您需要在docker run或docker-compose.yml的ports部分中使用-p选项发布端口。端口的格式是docker主机的可选IP(通常为空)、主机上的端口和容器的端口。如果不提供主机端口,将使用随机端口。使用docker run命令,这将如下所示:

docker run -p 8140:8140 ...
它将在docker主机上的所有接口上,将主机端口8140映射到容器端口8140

您还应确保主机上的iptables允许连接到主机上的端口8140

上面的docker-compose.yml语法如下所示:

version: '2'
services:
  app:
    image: your_image
    ports:
    - "8140:8140"

我目前正在docker compose上使用端口属性。我猜要按照您的建议使用docker compose,我应该使用expose而不是ports。expose不会发布端口供外部访问,它只以其他工具可用于查找的方式标记端口。您需要使用端口在docker主机上发布端口。我从一开始就为docker compose中的端口设置了-8140:8140,但8140在我的主机之外似乎不可用。也许我需要再次检查我是否一切正常。确保您连接到主机IP,并且您没有防火墙阻止端口。我认为我可能使用了错误的IP,如果这是一个错误,我会将其标记为正确。谢谢