【发布时间】:2016-03-26 00:04:44
【问题描述】:
我正在尝试学习 Docker,到目前为止,我遇到了很多在 docker-machine 中需要但在 boot2docker 中不需要的“变通办法”。
我当前的问题是从我的主机访问我的 docker 容器。
我有我的 Windows 主机,运行着一个使用 docker-machine 创建的虚拟机,并且在该 docker 虚拟机中我正在运行一个简单的 nginx 服务器容器。
运行 nginx 容器以将其 80 端口暴露给 docker-machine 的 8000。
docker run -d -p 8000:80 nginx
而我想要实现的是能够使用浏览器从我的 Windows 中打开此服务器。
如果我在 Windows 中使用 docker-machine ip 给我的 IP 使用 curl(Git bash,而不是 ssh-ed 到 docker-machine VM),那么它可以工作。但是使用我的浏览器不能(我目前使用的是 Microsoft Edge),如果我设置了 NAT 端口转发,我可以让浏览器工作。
curl $(docker-machine ip dev):8000
正如我所读到的,应该可以在不为每个端口指定端口转发规则的情况下访问 VM 端口,VirtualBox 应该自动公开和转发这些端口。
我做错了什么还是我必须为我的虚拟机和我想要使用的主机操作系统之间的每个端口指定端口转发规则?
【问题讨论】:
-
你的意思是http://
:8000/不起作用? -
是的,但仅限于尝试使用我的浏览器时。因为它是一个网络服务器,所以我不想一直使用 curl!
标签: docker portforwarding docker-machine