解决Windows下无法对docker容器进行端口映射的问题

微信截图_20170427183208

 

在安装了一个Windows下安装了docker,并尝试在其中运行Nginx、owncloud等服务,但映射完毕之后,在主机的浏览器中,打开localhost:port无法访问对应的服务。

用百度尝试了下,始终找不到答案,难道这个问题大家都没遇到过么?于是使用Google,并用英文检索,一会就找到了对应的答案。

The reason you’re having this, is because on Linux, the docker daemon (and your containers) run on the Linux machine itself, so “localhost” is also the host that the container is running on, and the ports are mapped to.

On Windows (and OS X), the docker daemon, and your containers cannot run natively, so only the docker client is running on your Windows machine, but the daemon (and your containers) run in a VirtualBox Virtual Machine, that runs Linux.

原来,docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker。也就是说,服务中使用的localhost指的是这个Linux环境的地址,而不是我们的宿主环境Windows。我们可以通过命令

在Windows中通过docker安装Ubuntu镜像

1

缘起

Docker的技术已经比较热了,因为我不是运维工程师,过去一直没有冲动让我去学习一下。我平时喜欢在Linux上折腾点东西,但公司为了配合开发,使用的是Windows系统。最近脑子一热,想通过docker在Windows下安装一个Linux虚拟机,抛弃笨笨的VM Ware和Virtual Box的安装方式,这样做一来在以后可以在虚拟机里测试点东西,二来也通过这个方式学习一下Docker。