我正在使用docker-compose,我的一个容器向主机无法访问的domain.name.com:443
(无法更改)发出请求。 localhost:542
上有一个隧道,该隧道将端点保存在主机上。我可以在docker compose中以某种方式映射此映射或使用一些解决方法吗?
从容器的domain.name.com:443:542
请求的一种domain.name.com:443
到达localhost:542
。
最佳答案
您可以在容器的/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上建立。
关于docker - docker域/端口映射到localhost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57209980/