docker - docker域/端口映射到localhost

标签 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

最佳答案

您可以在容器的/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/

相关文章:

Python:检查互联网连接(多次)

docker - 与使用 docker compose 启动的 redis 容器交互

docker - pod 死了。容器在 K8s 1.13 中启动

docker - 如何在 Kubernetes 部署中引用从 tar 文件加载的本地 docker 镜像?

docker - 如何使用 docker task V2 在 Azure devops 代理上运行 docker 镜像?

java - 无法绑定(bind)到客户端中的广播地址 -- Java/Scala

python - Python 中最简单的 "daytime"服务客户端?

MySQL 容器无法在 Docker Compose 中运行初始化脚本

mysql - 使用正在运行的 nginx 代理在 docker 中运行 Teampass

automation - 多个 docker 容器