为什么你的Docker容器总是”失联”?
刚装上Docker Desktop准备大展身手,却发现容器连不上网?宿主机和容器像隔着一堵墙?别慌!80%的网络问题都源于这三个原因:防火墙阻拦、端口未映射、网络模式选错。我们先从最基础的网络配置开始,让你十分钟摆脱”网络小白”的称号。
一、Docker Desktop的”交通规则”
打开Docker设置中的Network选项卡,你会看到三个关键配置项:
- ▸ DNS服务器:默认使用宿主机的DNS,遇到解析问题可设为8.8.8.8
- ▸ 代理设置:公司网络需在此配置代理服务器
- ▸ 网络模式切换按钮:开发环境建议保持默认的NAT模式
二、新手必踩的3个”坑”
这些错误我全都犯过,现在提前给你预警:
- ① 端口映射写反:-p 80:3000 是把宿主机80端口映射到容器3000端口
- ② 使用host网络模式:虽然方便但会导致端口冲突
- ③ 忘记关闭VPN:某些VPN会劫持Docker的虚拟网卡流量
三、手把手配置实战
跟着做这个万能配置方案:
- 在PowerShell输入
docker network create mynet
创建专属网络 - 运行容器时追加参数:
--network mynet -p 8080:80
- 打开Windows防火墙高级设置,放行Docker虚拟网卡
四、诊断网络问题的”三板斧”
当容器又双叒失联时,依次执行:
docker exec -it 容器名 ping baidu.com
测试外网连通性docker network inspect mynet
查看IP分配情况- 在宿主机执行
tracert 容器IP
追踪路由路径
小编观点:遇到网络问题先别急着重启电脑,记住这个万能口诀——查端口、看IP、测路由。配置时养成写注释的习惯,比如在docker-compose.yml中添加#标记每个端口的用途,三个月后你会感谢现在的自己。