非 Win10 企业版 Docker 运行 nginx 端口映射不成功问题解决

本贴最后更新于 2593 天前,其中的信息可能已经沧海桑田

问题描述

在 Docker 中启动 Nginx 服务并将端口映射到主机 8090 端口,

$ docker run -d -p 8090:80 nginx

此时在主机浏览器访问 localhost:8090 是无法正常显示的
5d1f1fa451ed42d0be768b1576b4129d-10.png

问题原因

由于在非 win10 企业版中使用的 Docker 都是先由 VirtualBox 虚拟一个 Linux 环境然后 Docker 运行在这个虚拟环境里,所以 localhost 是对于 docker 镜像对虚拟的 Linux 环境来说的,端口映射在了虚拟的 Linux 中。

问题解决

使用 docker-machine ip default 查看虚拟 Linux 提供给主机的 IP 地址,其实在 Docker 启动时就有 IP 提示

docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

此时我们在浏览器中把 localhost 换成刚才的 IP 地址就能正常访问 Nginx 默认页了。
cd6d322673d446db85bf1820a6bf8f7d-11.png

建议

Docker 是在 Ubuntu 下诞生的,所以尽可能使用 Ubuntu 系统,搞这些东西 Windows 真的不适合。

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    491 引用 • 917 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • alanfans 1 赞同

    docker 不推荐在 win 下玩。

  • 其他回帖
  • 416584102

    上回我也是遇到这个问题,翰是百思不得姐啊.