gpt4 book ai didi

docker - 在 Windows 10 中使用 Docker for Windows 将容器端口公开给主机

转载 作者:IT老高 更新时间:2023-10-28 12:43:16 24 4
gpt4 key购买 nike

我正在阅读 docker API并尝试创建一个简单的容器并公开 1 个端口。

在我的示例中,我有一个监听 TCP 端口 9595 的应用程序在容器内部,我想从端口 9090 上的外部世界(即容器的主机)访问它.

创建容器时我有 "ExposedPorts": { "9595/tcp: {}" }"PortBindings": { "9595/tcp": [{ "HostPort": "9090" }] } .

所以,如果我从主机访问 http://container_internal_ip:9595有用!但是,当我访问 http://localhost:9090 ,这是我使用此端口映射功能所期望的,它不起作用...

运行时docker port containerID我有 9595/tcp -> 0.0.0.0:9090这应该意味着,when connecting to any IP on the host, at port 9090, forward to the container in port 9595 .

那么,这里有什么问题?为什么我无法连接到 9090?

感谢任何澄清。

最佳答案

请发布您正在使用的 docker 命令。

如果您使用 Docker Toolbox 或 Docker for Windows,则需要特殊处理。您应该可以毫无问题地看到 localhost(如果您的容器是 Linux)。如果您希望您的容器从外部可见,请尝试使用 Elevated Power Shell:

netsh interface portproxy add v4tov4 listenaddress=yourip listenport=9090 connectaddress=10.0.75.1 connectport=9090

如果您的容器是 Windows,但是您不会看到 localhost,您需要使用容器内部地址:

docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" <cointainerid>

引用:https://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/

问候

关于docker - 在 Windows 10 中使用 Docker for Windows 将容器端口公开给主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40349893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com