推荐使用自定义Docker Bridge网络而非默认网桥,因其更安全且支持服务发现;通过docker network create创建并指定子网/网关,容器用--network接入后可直接通过名称通信,需用docker inspect和docker exec验证IP分配与DNS解析。

Docker Bridge 网络创建和配置其实很直接,关键在于区分默认网桥和自定义网桥——后者更安全、更实用,推荐日常使用。
创建自定义桥接网络
用一条命令就能新建一个隔离性好、支持服务发现的桥接网络:
- 运行 docker network create myapp-net 即可创建名为 myapp-net 的桥接网络(名称可自定)
- 如需指定子网和网关,加参数:docker network create --subnet=192.168.100.0/24 --gateway=192.168.100.1 myapp-net
- 创建后用 docker network ls 查看,确认新网络已列出,DRIVER 显示为 bridge
让容器接入桥接网络
启动容器时通过 --network 指定网络,比默认 bridge 更可靠:
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
- 例如:docker run -d --name web --network myapp-net nginx
- 再起一个容器:docker run -d --name db --network myapp-net mysql:8.0
- 这两个容器现在能直接用名字通信:web 容器里 ping db 或 mysql -h db -u root -p 都能通
验证与调试连接
确认容器是否真连上了目标网络,避免“以为连了实际没连”:
- 查容器网络信息:docker inspect web | grep -A 10 "Networks"
- 重点看 Networks → myapp-net → IPAddress 是否有分配到 IP(如 192.168.100.2)
- 进容器测试:docker exec -it web sh,然后 cat /etc/hosts,能看到 db 的名字已自动解析
常见误区与提醒
避开几个高频坑,省去排查时间:
- 不要依赖默认 bridge 网络做多容器协作——它不支持容器名解析,只能靠 IP,维护困难
- 同一个容器可同时接入多个网络,用 docker network connect myapp-net another-container
- 网络删不掉?先停并删除所有连接它的容器,否则会提示 “network is in use”

















