docker域/端口映射到localhost

时间:2019-07-25 20:53:17

标签: docker networking docker-compose

我正在使用docker-compose,我的一个容器向主机无法访问的domain.name.com:443发出请求(无法更改)。 localhost:542上有一个隧道,该隧道将端点保存在主机上。我可以在docker compose中以某种方式映射此映射或使用一些解决方法吗?

种类domain.name.com:443:542来自容器的domain.name.com:443的请求到达localhost:542

1 个答案:

答案 0 :(得分:1)

您可以在容器的/etc/hosts文件上添加一个条目,将该域映射到主机的IP地址

docker run -it --add-host "parent.example.com:192.168.0.2" --network="host" --rm busybox

使用以下命令从容器中进行测试:

/ # cat /etc/hosts
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.0.2     parent.example.com

/ # wget -q http://parent.example.com:8000 -O -

response from parent.example.com:8000

就我而言,我在运行最小Web服务器的主机上进行了测试

 while true ; do { echo -e "HTTP/1.1 200 OK\r\nConnection: Close\r\n\r\n"; echo "response from parent.example.com:8000" ; } | netcat -q 0 -l 8000 ;done

您的映射应为--add-host "domain.name.com:<your_ip_address>"。 ssh隧道应该在端口443而不是542上建立。