无法从 windows 访问 Docker 容器网址 (172.17.0.2)

Can't access Docker container web address (172.17.0.2) from windows

我正在使用 docker 桌面,我已将 prometheus 作为容器运行:

commande docker inspect 显示此容器 运行 在端口 9090 上的网关 172.17.0.2 上。

“网络”:{ “桥”: { “IPAMConfig”:空, “链接”:空, “别名”:空, “网络 ID”:“a112bcf4dbabbfdb5b3e14c9d286469a482557c78d42854a5ae3e754ca44fd5d”, “端点 ID”:“0ecc79513b555daebb51947a6a6a73bb26f0974542a6f79d14013b8b1572a589”, “网关”:“172.17.0.1”, "IP 地址": "172.17.0.2", “IPPrefixLen”:16, "IPv6网关": "", "GlobalIPv6Address": "", “GlobalIPv6PrefixLen”:0, "MacAddress": "02:42:ac:11:00:02", “DriverOpts”:空 } }

但是当我的浏览器无法访问此地址时。

谁能帮忙

没错:您无法访问 Windows 主机上的 docker inspect IP 地址。你也不能从 MacOS 主机访问它,如果你的 Docker 更明确地在虚拟机中(使用 Docker 工具箱或像 Minikube 这样的工具用于你的 Docker 环境),或者如果您从容器中的不同主机调用。这个 IP 地址几乎从来没有用过,你根本不需要查找它。

当您启动一个容器时,您可以选择 publish ports 从它开始。如果 Prometheus 通常在端口 9000 上侦听,这可能看起来像

docker run \
  -d \                # in the background
  --name prometheus \ # with a name so it's easier to manage
  -p 9123:9000 \      # host port 9123 -> container port 9000
  bitnami/prometheus

第二个端口号必须与图像预期的完全匹配。第一个端口号可以是任何未被使用的端口号。端口通常相同但不必相同。

一旦有了这个docker run -p选项,就可以使用第一个端口号访问容器; http://localhost:9123 如果您在同一台主机上(并且没有使用 Docker 工具箱或类似的 VM-based 设置)。

如果您没有此选项,docker stopdocker rm 现有容器以及 docker run 具有正确设置的新容器。这是非常常规的,非常类似于使用 Ctrl+C 停止 command-line 进程然后 运行 它不同的 command-line 个参数。