问题
正常情况下Docker启动nginx镜像
docker run --name webserver -d -p 8080:80 nginx
--name 为重命名,-d 为后台运行,-p 为端口设置,映射本地8080端口
启动成功后会得到一个长ID号:
32cd0c2c508243e89e1b2a77fade2a78db0c0ce3dffc5da3a4bce94325066dc9
查看容器运行情况
docker ps
可以看到8080端口已经映射到nginx的80端口
如果是在Windows使用Docker,此时在浏览器输入http://loaclhost:8080,是无法正常访问的。
原因在于:
docker是运行在linux虚拟机上的,我们在Windows系统中运行docker,实际上是先在Windows下先安装了一个Linux环境,然后在这个环境中运行的docker。所以,访问服务中使用的localhost指的是这个Linux环境的地址,而不是我们的Windows。
那么如何才能知道Docker运行环境的IP呢?
其实在Docker启动的时候,日志里就已经打印出来了
doc