温馨提示×

debian docker如何设置网络

小樊
38
2026-10-05 01:58:02
栏目: 智能运维

在 Debian 上使用 Docker 时,“设置网络”通常涉及容器网络模式选择、自定义网络、端口映射、以及宿主机网络配置。下面按使用场景系统说明。


一、Docker 默认网络模式(先了解)

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

docker network ls
  • bridge:默认,容器通过 NAT 上网
  • host:直接使用宿主机网络
  • none:无网络

二、最常用:bridge + 端口映射(推荐)

1️⃣ 启动容器并映射端口

docker run -d -p 8080:80 --name web nginx
  • 宿主机 8080 → 容器 80
  • 外部访问:http://<宿主机IP>:8080

2️⃣ 查看端口映射

docker port web

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

1️⃣ 创建网络

docker network create mynet

2️⃣ 容器加入同一网络(可互相通信)

docker run -d --net=mynet --name db mysql
docker run -d --net=mynet --name app myapp

✅ 同一网络内可用容器名互相访问(DNS 解析)


四、使用 host 网络(性能最好,但少隔离)

docker run -d --network host nginx

特点:

  • 无端口映射
  • 直接使用 Debian 网卡
  • 不适合多容器同端口

五、Debian 宿主机网络相关设置

1️⃣ 开启 IP 转发(Docker 需要)

cat /proc/sys/net/ipv4/ip_forward

若为 0:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

2️⃣ 防火墙(iptables / nftables)

Debian 12 默认使用 nftables

查看:

nft list ruleset

Docker 会自动写 iptables 规则
⚠️ 不要手动清空 Docker 创建的链

允许端口示例(UFW 不推荐与 Docker 混用):

iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

六、固定容器 IP(高级)

docker network create --subnet=172.20.0.0/16 mynet
docker run -d --net=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 exec -it web ping 8.8.8.8

# 查看容器 IP
docker inspect web | grep IPAddress

# 查看网络详情
docker network inspect mynet

九、选择建议

场景 推荐方式
单服务暴露端口 bridge + -p
多容器通信 自定义 bridge
高性能 / 少隔离 host
生产环境 自定义网络 + compose

如果你能说明:

  • 是 Debian 物理机 / 云服务器 / WSL
  • 想 暴露端口 / 容器互通 / 固定 IP / 内网隔离

我可以直接给你对应配置命令。

0 踩