首页/发现新知
视界 · 深度阅读

ubuntu docker怎样配置网络

在 Ubuntu 上使用 Docker 配置网络,常见方式可以分为 Docker 默认网络、自定义桥接网络、主机网络、容器互联、以及跨主机网络。下面按使用场景给你一个清晰、可操作的说明。


一、Docker 默认网络(不需要配置)

安装 Docker 后,默认有 3 种网络:

docker network ls

常见网络:

  • bridge:默认桥接(容器隔离)
  • host:直接使用宿主机网络
  • none:无网络

查看某容器使用的网络:

docker inspect 容器名 | grep NetworkMode

二、使用默认 bridge 网络(最常用)

1. 启动容器(默认 bridge)

docker run -it --name web1 ubuntu bash

特点:

  • 容器有独立 IP
  • 容器之间可通过 IP 通信
  • 不能通过容器名访问

查看容器 IP:

docker inspect web1 | grep IPAddress

三、自定义 bridge 网络(推荐 ✅)

1. 创建自定义网络

docker network create mynet

2. 启动容器并加入网络

docker run -d --name web1 --network mynet nginx
docker run -it --name client --network mynet ubuntu bash

3. 容器名互访 ✅

ping web1

✅ 自定义 bridge 支持:

  • 容器名 DNS 解析
  • 更安全
  • 推荐生产使用

四、使用 host 网络(性能最好)

docker run -d --network host nginx

特点:

  • 无端口映射
  • 直接使用 Ubuntu 网络
  • 适合高性能场景

⚠️ 注意:

  • 端口冲突风险
  • 容器内服务直接暴露在外网

五、端口映射(bridge 常用)

docker run -d -p 8080:80 nginx

访问:

http://Ubuntu_IP:8080

查看映射:

docker ps

六、容器互联(旧方式,不推荐)

docker run -d --name db mysql
docker run -d --name web --link db nginx

❌ --link 已废弃,建议用自定义网络。


七、固定容器 IP(高级)

docker network create --subnet=172.20.0.0/16 mynet
docker run -d --name web --network mynet --ip=172.20.0.10 nginx

八、Docker 与 Ubuntu 防火墙(重要)

Ubuntu 常用 ufw:

sudo ufw allow 8080

如 Docker 端口不通,可检查:

sudo ufw status
iptables -L

九、跨主机网络(简单了解)

  • Docker Swarm
  • Overlay 网络
  • 第三方:Calico / Flannel / Weave

示例(Swarm):

docker swarm init
docker network create -d overlay mynet

十、常用排查命令

docker network ls
docker network inspect mynet
docker exec -it 容器名 ping 其他容器
ip addr

总结建议 ✅

场景 推荐方式
单机多容器 自定义 bridge
高性能 host
Web 服务 bridge + 端口映射
生产环境 自定义网络

如果你有 具体使用场景(比如:Docker Compose、内网访问、外网暴露、集群),我可以给你更针对性的配置示例。

读到这里,发现更多一点。探索更多内容 ↗