我正在使用Docker Quickstart终端来运行docker容器。容器应该在Array.prototype.slice
的端口8088
上工作:
localhost
但是,当我转到 docker run -it --name myContainer -p 8088:8088
或localhost:8088
时,我找不到任何正在运行的进程。
这适用于OSX。
为什么这不适用于Windows?
答案 0 :(得分:17)
我假设你正在使用VirtualBox,因为那是与Quickstart终端集成的内容。
它不起作用的原因是Windows本身并不运行您的(Linux)容器,而是在一个单独的基于Linux的VM中运行它们。此虚拟机可以使用与您的物理地址不同的IP地址。机器,通常在启动快速启动终端时打印:
这是您需要使用的IP地址才能连接到已发布的容器端口。
答案 1 :(得分:3)
一种可能性是您正在使用的VM类型:HyperV(Docker For Windows)或VirtualBox(Docker Toolbox)。
如果是后者(这可能是因为您使用的是Docker Quickstart终端),您需要向前移动8088以便您的PC(localhost)能够看到它。
见" How do I configure docker compose to expose ports correctly?"以VirtualBox为例。
如果localhost不起作用, docker-machine ip
将显示正在执行的VM的IP。