docker - 在 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 命令提示符下运行,则相同。
解决方案
这个 IP ( 172.18.0.2
) 代表什么?它是运行 DockStation 的远程机器吗?
如果是这种情况,请检查该端口是否在该计算机上公开可用。您确实ports
在 Dockerfile 中添加了部分,该部分会将容器的端口映射到机器的端口 - 但例如防火墙是否阻止外部访问该端口是一个问题。
我会首先通过尝试localhost:7080
从172.18.0.2
机器访问来解决它 - 如果它有效,那么您的 Docker 配置是好的,您需要在该机器的配置(例如防火墙)中查找问题。
推荐阅读
- sql - 使用分隔符分割
- ios - 如何在 Swift iOS 开发中从一个视图控制器获取分段控制索引到另一个容器视图控制器?
- c++ - 有什么方法可以转换矢量
向量 ? - reactjs - React Native 圆角看起来很奇怪
- java - 作为子加载的控制器之间的通信
- javascript - 处理 JSON 以创建子级到父级的层次关系
- echonest - EchoNest 12 维音色向量 - 每个元素的含义?
- sitefinity - Sitefinity 11 - 在结帐过程中添加一个步骤
- github - Drone CI 没有让我退出
- forms - Symfony 从表单事件监听器获取控制器中的数据