我使用这个官方指南在Windows 7机器上设置Docker:
https://docs.docker.com/windows/started/
我成功地从docker中心拉了一个图像,我可以运行我自己的docker图像。
不,我坚持试图运行和访问与Windows上的泊坞窗Web服务器。 显然,在boot2docker
我无法按照习惯的方式到达我的docker集装箱。
将docker run
命令添加-p 3007:80
,端口转发显示在容器列表( docker ps
)中,为0.0.0.0:3007 -> 80
。 与-p 127.0.0.1:3007:80
我得到一个更有意义的IP地址。 但是,我不能通过Windows主机上的浏览器访问容器。
此外, docker inspect
不会显示正在运行的容器的IP地址(这似乎也是错误的)。
我也试过--net=host
无济于事。
随着Docker Toolbox的推出,事情发生了一些变化。 现在你不直接与boot2docker
交互,而是使用boot2docker
docker-machine
。 虽然boot2docker
仍然作为虚拟机存在,但不再有CLI-Tool。 它被Docker Machine取代。
因此,您应该能够通过键入以下命令来获得VM的IP地址: docker-machine ip <machine-name>
。 如果你有默认安装,你的机器名称将是default
。
在docker-machine active
您可以查看哪个VM当前处于活动状态。 用这个名字你也可以使用docker-machine inspect <machine-name>
。
您可以在官方文档中找到更多关于Docker Machine的信息。
事情发生了一些变化:Docker本身支持Windows,不再需要Boot2Docker或Docker Toolbox。 您现在应该从Windows 10 (或Windows server 2016)开始。
在整个Windows上的Docker旅程中,我开发了一个最佳实践,检查是否可以访问Web服务器:
docker run -d -p hostport:containerport imagename
) docker exec -it containerName powershell
或docker exec -it containerName bash
,如果你使用Linux容器),并检查,如果iwr http://localhost:80 -UseBasicParsing
给你一个好看HTML和HTTP状态200 docker network inspect dockerNetworkName
,这将给你所有的容器数据,包括内部IP地址),并指向您的浏览器http://containerIP:containerPort
。 http://localhost:containerPort
访问您的Web服务器(这可能不适用于Windows容器,因为本地主机回送没有工作 – 虽然它可以在更新版本的Windows 10 / server 2016上工作)