Linux Docker网络怎么配置
导读:Linux Docker 网络配置指南 一 核心概念与网络模式 Docker 在 Linux 上提供多种网络模式,常用的有:bridge(默认)、host、none、container(复用另一个容器的网络命名空间),以及用于多主机的 o...
Linux Docker 网络配置指南
一 核心概念与网络模式
- Docker 在 Linux 上提供多种网络模式,常用的有:bridge(默认)、host、none、container(复用另一个容器的网络命名空间),以及用于多主机的 overlay、macvlan。默认安装后会创建名为 docker0 的 Linux 网桥,默认网段通常为 172.17.0.0/16,容器通过 NAT 访问外部网络。自定义网络可使用 bridge/macvlan/overlay 驱动,便于隔离与服务发现。
二 快速上手常用操作
- 查看与创建网络
- 查看网络:
docker network ls - 查看详情:
docker network inspect bridge - 创建自定义 bridge:
docker network create --driver bridge --subnet 172.19.0.0/16 --gateway 172.19.0.1 mybridge_net
- 查看网络:
- 运行容器并指定网络
- 使用自定义网络:
docker run --name c1 --network mybridge_net -it ubuntu:24.04 - 指定固定 IP(仅自定义 bridge 支持):
docker run --name c2 --network mybridge_net --ip 172.19.0.30 -it ubuntu:24.04 - 端口映射(bridge 模式):
-p 8080:80或-P(随机高位端口)
- 使用自定义网络:
- 容器间互联与多网卡
- 将运行中容器接入另一网络:
docker network connect mybridge_net c1 - 指定容器 IP 连接:
docker network connect mybridge_net --ip 172.19.0.31 c1 - 移除网络:
docker network disconnect mybridge_net c1 - Joined 模式共享网络栈:
docker run -it --rm --name c3 --network container:c1 busybox
- 将运行中容器接入另一网络:
- 其他模式
- Host 网络:
docker run --name c4 --network host -it ubuntu:24.04 - None 网络:
docker run --name c5 --network none -it ubuntu:24.04
- Host 网络:
三 全局网络配置与网段规划
- 编辑 Docker 守护进程配置文件 /etc/docker/daemon.json(如不存在可新建),常见项:
- 自定义默认网桥 IP:
"bip": "192.168.1.1/24" - MTU:
"mtu": 1500 - 地址池(避免与内网冲突):
{ "default-address-pools": [ { "base": "172.16.0.0/16", "size": 24 } ] }
- 自定义默认网桥 IP:
- 使配置生效:
sudo systemctl restart docker - 规划建议
- 避免与宿主机和现有内网网段冲突(如 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)。
- 需要对外提供访问时优先使用 -p 端口映射或 host 模式;对性能敏感且需直接接入物理网络时考虑 macvlan。
四 跨主机与高级网络
- Overlay 网络(适用于 Swarm/多主机)
- 创建覆盖网络:
docker network create -d overlay my_overlay - 将服务加入该网络(在 compose/service 中声明 networks 即可)
- 创建覆盖网络:
- Macvlan 网络(容器直连物理二层网络)
- 创建 macvlan 网络(示例父接口为 eth0,按实际环境替换):
docker network create -d macvlan \ --subnet=192.168.10.0/24 \ --gateway=192.168.10.1 \ -o parent=eth0 \ macvlan_net - 运行容器:
docker run --name vm1 --network macvlan_net -it ubuntu:24.04 - 提示:使用 macvlan 时,容器与宿主机默认不在同一二层网段,若需与宿主机通信可再添加宿主机到 macvlan 的“副接口”或使用额外路由策略。
- 创建 macvlan 网络(示例父接口为 eth0,按实际环境替换):
五 常见问题与排查
- 端口访问不通
- 确认容器端口已映射:
docker ps查看 PORTS;必要时使用-p 8080:80显式映射。 - 检查宿主机防火墙/安全组是否放行对应端口(如 firewalld/iptables)。
- 确认容器端口已映射:
- 自定义 bridge 无法指定 IP
- 仅自定义 bridge 支持
--ip,默认 bridge 不支持;先创建自定义网络再指定 IP。
- 仅自定义 bridge 支持
- 容器间不通
- 确认在同一网络:
docker network inspect < net>查看 Containers;必要时docker network connect加入网络。
- 确认在同一网络:
- 外部无法直接访问容器
- bridge 模式需通过
-p做端口映射或改用 host 模式;检查 NAT/防火墙规则。
- bridge 模式需通过
- 修改默认网桥或 MTU 后未生效
- 修改 /etc/docker/daemon.json 后需
systemctl restart docker,并重启容器。
- 修改 /etc/docker/daemon.json 后需
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Docker网络怎么配置
本文地址: https://pptw.com/jishu/757197.html
