macos - 如何在 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 上侦听?
解决方案
小菜一碟...与 Docker for Mac 的特性无关。把它放在 docker-compose.yml
暴露 Dockerfile 中的端口。把它放在 docker-compose.yml
network_mode: "bridge"
ports:
- "127.0.0.1:80:80"
(用你的端口代替 80)。
通过使用桥接网络,您的容器将可以访问所有主机 IP。在“端口”中指定 IP 仅映射到指定的主机 IP。
推荐阅读
- c++ - 设置 MOD_DIR 时,QMake / Moc 的行为不同
- android - 如何在导航抽屉项目上添加徽章
- vue.js - 如何将静态组件附加到 Vue 中的动态组件?
- swift - 如何快速将多个复选框值发送到 firebase?
- html - 如何使 svg 适合图像
- google-chrome - 如何在 Chrome 扩展程序中访问私有 API
- android - 独立世博会(ExpoKit)推送通知
- python - 当单击而不是外壳时,如何使按钮的值显示到 tkinter 上?
- python - 如何使用 Atom 编辑器将脚本的路径设置为 Python 中的工作目录?
- scala - 如何使用 joinWith 加入 2 个以上的数据集?