gpt4 book ai didi

docker - 如何告诉 mac 上的 docker 出于所有目的使用主机网络?

转载 作者:行者123 更新时间:2023-12-01 11:16:10 24 4
gpt4 key购买 nike

如何告诉 mac 上的 docker 出于所有目的使用主机网络,以便我的 docker 容器可以通过 localhost 或 127.0.0.1 连接到主机上运行的任何服务?

docker run --net=host -it myimage并且容器无法通过本地主机连接到主机上运行的任何东西。我收到连接拒绝错误。

docker version
Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:13:02 2018
OS/Arch: darwin/amd64
Experimental: false
Orchestrator: swarm

Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:22:38 2018
OS/Arch: linux/amd64
Experimental: true

最佳答案

主机网络驱动程序将按照您期望的方式在 Linux 上运行,但它不会提供您在 Mac 和 Windows 上寻找的内容。

它在官方文档中提到:https://docs.docker.com/network/network-tutorial-host/ .

The host networking driver only works on Linux hosts, and is not supported on Docker for Mac, Docker for Windows, or Docker EE for Windows Server.



你可以用 --network host 启动你的容器在 Mac 上没有错误,但你不会得到你期望的结果。

这背后的原因是 Docker for Mac 和 Windows 应用程序在后台使用虚拟机,在这种情况下,“主机”指的是 VM,而不是您的主机。

如果你想知道 Docker 是否会在 Mac 和 Windows 上实现这个,请关注这个问题 https://github.com/docker/for-mac/issues/2716 .

您可以在 Docker 论坛 here 上阅读有关该主题的更多信息和 here .

要完成图片:
  • 如果您正在开发常规 Web 应用程序,请使用 -p 或者最好查看用户定义的网络、docker-compose 和 Swarm 或 Kubernetes,以便您以最终目的构建您的应用程序。
  • 如果您处于特殊情况并且将在生产中使用 --network host 部署您的应用程序,无论出于何种原因,最好在 Linux 机器上开发。
  • 关于docker - 如何告诉 mac 上的 docker 出于所有目的使用主机网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50859635/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com