gpt4 book ai didi

docker - 使用 docker --net ="host"我可以访问端口

转载 作者:行者123 更新时间:2023-12-02 01:34:56 25 4
gpt4 key购买 nike

当我为监听端口 8090 的 Web 应用程序运行容器时

docker run -p 8090:8090 -h=%ComputerName% mycontainer

然后我就可以访问http://localhost:8090上的服务了

如果我用

启动容器

docker run --net="host"-h=%ComputerName% mycontainer

然后我无法访问 http://localhost:8090 上的服务

为什么?

不应该使用 -net="host"容器共享主机的网络,那么为什么我无法访问http://localhost:8090与 --net="主机"

最佳答案

这不是 --net=host 所做的。

在你的第一个例子中;您正在将容器的端口映射到您的主机 - 这允许您通过容器的服务。

在第二个例子中;您删除了 -p 选项,因此现在没有映射任何端口

--net=host 的作用是允许您的容器查看主机上的端口,就好像它们位于容器本地一样。假设您有一个数据库在主机的端口 5000 上运行,并且它不在 Docker 容器中 - 您可以通过 localhost:5000 在容器上访问此数据库. (注意 - 对此有一些注意事项;例如 Docker for Mac 实际上需要 docker.for.mac.localhost)

关于docker - 使用 docker --net ="host"我可以访问端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49631378/

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