有部分网站打不开,wordpress+后门检查,网站建设与管理的现状,百度怎么注册公司网站在Docker中#xff0c;使用主机网络模式#xff08;host network mode#xff09;时#xff0c;容器将共享主机的网络命名空间#xff0c;这意味着容器将直接使用主机的网络接口和端口。因此#xff0c;当你尝试通过Docker的发布端口功能#xff08;publish a port…在Docker中使用主机网络模式host network mode时容器将共享主机的网络命名空间这意味着容器将直接使用主机的网络接口和端口。因此当你尝试通过Docker的发布端口功能publish a port将容器的端口映射到主机时实际上不会发生任何映射因为容器已经直接使用主机的网络所以不需要进行端口映射。
解决方法
如果你需要将容器端口映射到主机端口你应该使用桥接模式bridge mode而不是主机网络模式。桥接模式是Docker的默认网络模式在这种模式下Docker会为容器配置独立的网络命名空间并通过Docker网络接口将容器端口映射到主机端口。 移除容器时使用桥接模式启动它不要使用--nethost参数。 如果需要访问主机的网络接口或服务可以通过主机模式host mode来绑定特定的主机资源如/etc/hosts或者特定的主机网络接口到容器中而不是使用主机网络模式。
例如启动一个使用桥接模式的容器而不是主机网络模式
docker run -d -p 8080:80 myimage
这里-d表示后台运行-p 8080:80表示将容器内的80端口映射到主机的8080端口但是一般不建议这么干因为这样docker和宿主共享网络不是很安全一般都建议在docker中建立连接通过别名构建docker之间通信
docker network create testnet 然后容器中构建服务的时候加上 --network
docker run -d -p 4000:4000 --network testnet --network-alias yourservice --name yourservice yourservice
这样docker之间就可以通过别名来访问宿主机和docker有效隔离