首页 > 解决方案 > 在 Windows 上连接到 docker 容器

问题描述

我已经阅读了这篇文章,并尝试添加ports: "7080:7080"docker-compose.yml 但仍然无法使用 172.18.0.2:7080 连接到容器(顺便说一句,我是 docker 新手)

该容器是 Windows 10 上的 DockStation 项目中的几个容器之一。我使用的图像是用于OpenLiteSpeed 和 WordPress的。

docker-compose.yml 文件内容如下:

version: '2'
services:
  gnome-3-28-1804:
    image: ubuntudesktop/gnome-3-28-1804
  firefox:
    image: jlesage/firefox
  browser-box:
    image: jim3ma/browser-box
  openlitespeed:
    image: litespeedtech/openlitespeed
    ports: 
     - "7080:7080"

请问有什么想法吗?

更新:IP 172.17.0.1 似乎是默认的网桥网关 IP,所以我假设这个容器的 172.18.0.2 在某种程度上与此相关;Docker 和 DockStation 都在主机 10.0.0.10 上本地运行 不确定设置是否应该使用网桥。http://localhost:7080/说 ERR_CONNECTION_REFUSED

更新 2:我正在使用 Docker for Windows(Docker 桌面)。尝试关闭 Windows 防火墙,但没有任何区别。仍然得到 ERR_CONNECTION_REFUSEDhttp://localhost:7080/http://10.0.0.10:7080/。项目中有 3 个其他容器但未运行,只有 LiteSpeed 一个正在运行。

更新 3:我创建了一个新项目并安装了 tutum/hello-world/ 然后运行了新容器。hello-world 容器正在运行,我在日志中没有发现任何错误,但是 localhost 和 10.0.0.10 都不会连接,Chrome 中的错误是 ERR_CONNECTION_REFUSED。如果我docker run -d -p 80 tutum/hello-world在 Windows 命令提示符下运行,则相同。

标签: dockerdocker-compose

解决方案


这个 IP ( 172.18.0.2) 代表什么?它是运行 DockStation 的远程机器吗?

如果是这种情况,请检查该端口是否在该计算机上公开可用。您确实ports在 Dockerfile 中添加了部分,该部分会将容器的端口映射到机器的端口 - 但例如防火墙是否阻止外部访问该端口是一个问题。

我会首先通过尝试localhost:7080172.18.0.2机器访问来解决它 - 如果它有效,那么您的 Docker 配置是好的,您需要在该机器的配置(例如防火墙)中查找问题。


推荐阅读