首页 > 解决方案 > 如何在 MacOS 上使用 Docker 桌面监听主机本地主机

问题描述

我在容器内运行一个特殊用途的 Web 服务器。主机是运行 Docker Desktop 的 Mac。我需要只能从我的 Macbook 上运行的网络浏览器访问网络服务器。

如果我使用端口映射(例如 -p 80:80),则 Web 服务器可通过 Mac 的 127.0.0.1 使用,但它也会侦听 Mac 的 IP 地址,在这种情况下这是不可接受的。

如果这不是 Docker,我会告诉 Web 服务器监听 127.0.0.1。但这不能从容器外部到达。

如何在 Docker for Mac 上的容器中运行 Web 服务器,并让它只在 Mac 的 localhost 上侦听?

标签: macosdockernetworking

解决方案


小菜一碟...与 Docker for Mac 的特性无关。把它放在 docker-compose.yml

暴露 Dockerfile 中的端口。把它放在 docker-compose.yml

network_mode: "bridge"
ports:
  - "127.0.0.1:80:80"

(用你的端口代替 80)。

通过使用桥接网络,您的容器将可以访问所有主机 IP。在“端口”中指定 IP 仅映射到指定的主机 IP。


推荐阅读