我有以下情况 . 我有一个服务,在端口1234上侦听127.0.0.1(出于安全原因,这不能更改) . 在同一台机器上运行一个docker容器 . 我需要以某种方式从容器内连接到主机上的服务 . 因为服务只接受来自127.0.0.1的请求,所以我需要以某种方式将端口从容器链接到主机端口,但是相反,所以当我从容器内连接到127.0.0.1:1234时,主机上的服务将收到数据 .这可能吗?谢谢 .
如何在localhost:port上绑定Dockerized服务?
使用 -p : docker run -p 127.0.0.1:1234:1234 <other options> <image> <command> .
-p
docker run -p 127.0.0.1:1234:1234 <other options> <image> <command>
使用默认的桥接网络,您将无法从容器连接到侦听127.0.0.1的主机上的服务 . 但是,在运行容器时可以使用 --net=host 直接在容器中使用主机网络堆栈 . 它删除了一些隔离,但随后允许您直接与127.0.0.1作为容器对话并与主机上运行的服务进行通信 .
--net=host
2 回答
问题
如何在localhost:port上绑定Dockerized服务?
答案
使用
-p
:docker run -p 127.0.0.1:1234:1234 <other options> <image> <command>
.使用默认的桥接网络,您将无法从容器连接到侦听127.0.0.1的主机上的服务 . 但是,在运行容器时可以使用
--net=host
直接在容器中使用主机网络堆栈 . 它删除了一些隔离,但随后允许您直接与127.0.0.1作为容器对话并与主机上运行的服务进行通信 .