在 Ubuntu 上使用 Docker 配置网络,常见场景和做法如下,按从常用到进阶的顺序说明。
安装 Docker 后,默认有 3 种网络:
docker network ls
bridge:默认桥接网络(容器间可通信)host:直接使用宿主机网络none:无网络docker run -it ubuntu bash
docker run -d -p 8080:80 nginx
http://Ubuntu_IP:8080docker network create mynet
docker run -d --name web --network mynet nginx
docker run -it --name client --network mynet ubuntu bash
✅ 好处:
docker run --network host nginx
特点:
⚠️ 不适合多容器同端口
docker network create \
--subnet=172.20.0.0/16 \
mynet
docker run -d \
--name web \
--network mynet \
--ip=172.20.0.10 \
nginx
version: "3"
services:
web:
image: nginx
ports:
- "8080:80"
networks:
- mynet
db:
image: mysql
networks:
- mynet
networks:
mynet:
docker compose up -d
docker run alpine ping 8.8.8.8
检查:
-p 映射host 网络docker network inspect mynet
| 场景 | 推荐 |
|---|---|
| 本地测试 | 默认 bridge + -p |
| 多容器服务 | 自定义 bridge |
| 高性能 | host |
| 生产环境 | 自定义网络 + compose |
如果你能告诉我:
我可以直接给你一套可用配置。