Docker 容器未在网络上公开

Docker container not exposed on network

我是 docker 的新手。我 运行 它在 windows。我正在尝试让一个名为 "ghost" 的容器(可从 Docker Hub 获得)在 Windows 8.1 机器上工作。虽然容器正确启动并且应该在 http://localhost:2368 处公开 url,但当我输入此地址时没有任何反应。在尝试暴露 urls.

的集线器中的其他容器时,也会发生同样的情况。

我尝试从 "docker ip" 获得的 IP 地址访问容器的公开 URL 但它也失败了。我还尝试 运行 带有“--net="bridge"”选项的容器,但无济于事。我想我错过了一些非常基本的东西,但我无法终生弄清楚是什么。有人能指出我正确的方向吗?

您没有提供您执行的完整 'docker run ...' 命令,所以我假设您 运行 在 Docker Hub 上的图像页面中指定的命令(转载如下) .

docker run --name some-ghost -p 8080:2368 -d ghost

该命令正在将容器内 Ghost 的暴露端口 (2368) 映射到 boot2docker VM 中的端口 8080。您需要做的第一件事是 运行 boot2docker ip 以找出您的 boot2docker VM 的 IP 地址。关于端口号,你有两种选择:

当您在 Windows 上安装 Docker 时,这意味着您很可能安装了 boot2docker

boot2docker 启动最小 Linux VM(基于 VirtualBox),因为 Docker 需要 Linux 内核才能 运行。 Docker 守护程序在该 VM 上 启动,而不是在您的 localhost.

上启动

您可以通过在命令行中键入 boot2docker ip 来确定 VM 的 IP 地址。标准 boot2docker IP 地址是 192.168.59.103 如果你没有配置其他东西或者有多个实例的虚拟机 运行ning.

因此,当您执行 docker run --name ghost -p 2368:2368 -d ghost 时,端口 2368192.168.59.103:2368 处打开。那就是你需要连接到的地方。

有关详细信息,请阅读 official boot2docker documentation