温馨提示×

ubuntu docker如何配网络

小樊
33
2026-10-19 00:18:23
栏目: 智能运维

在 Ubuntu 上使用 Docker 配置网络,常见场景和做法如下,按从常用到进阶的顺序说明。


一、Docker 默认网络(最常用)

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

docker network ls
  • bridge:默认桥接网络(容器间可通信)
  • host:直接使用宿主机网络
  • none:无网络

1. 默认 bridge 网络(推荐新手)

docker run -it ubuntu bash
  • 容器通过 NAT 访问外网
  • 宿主机不能直接访问容器 IP

二、端口映射(最常用)

docker run -d -p 8080:80 nginx
  • 访问:http://Ubuntu_IP:8080
  • 等于把容器 80 端口映射到宿主机 8080

三、自定义 bridge 网络(推荐生产用)

创建网络

docker network create mynet

启动容器并加入网络

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

✅ 好处:

  • 容器之间可用容器名通信
  • 网络隔离,更安全

四、使用宿主机网络(host)

docker run --network host nginx

特点:

  • 容器直接使用 Ubuntu 的网络
  • 无端口映射
  • 性能最好,但隔离性差

⚠️ 不适合多容器同端口


五、容器固定 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 Compose 网络配置(推荐)

version: "3"
services:
  web:
    image: nginx
    ports:
      - "8080:80"
    networks:
      - mynet

  db:
    image: mysql
    networks:
      - mynet

networks:
  mynet:
docker compose up -d

七、常见问题排查

1. 容器不能上网

docker run alpine ping 8.8.8.8

检查:

  • Ubuntu 是否联网
  • 防火墙(ufw / iptables)

2. 宿主机无法访问容器

  • 是否做了 -p 映射
  • 是否是 host 网络

3. 查看网络详情

docker network inspect mynet

八、典型推荐方案

场景 推荐
本地测试 默认 bridge + -p
多容器服务 自定义 bridge
高性能 host
生产环境 自定义网络 + compose

如果你能告诉我:

  • 是 单容器 / 多容器
  • 是否需要 外网访问
  • 是否用 docker compose

我可以直接给你一套可用配置。

0 踩