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