首页主机资讯Linux Docker网络怎么配置

Linux Docker网络怎么配置

时间2025-11-26 22:47:04发布访客分类主机资讯浏览1175
导读:Linux Docker 网络配置指南 一 核心概念与网络模式 Docker 在 Linux 上提供多种网络模式,常用的有:bridge(默认)、host、none、container(复用另一个容器的网络命名空间),以及用于多主机的 o...

Linux Docker 网络配置指南

一 核心概念与网络模式

  • Docker 在 Linux 上提供多种网络模式,常用的有:bridge(默认)、hostnonecontainer(复用另一个容器的网络命名空间),以及用于多主机的 overlaymacvlan。默认安装后会创建名为 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

三 全局网络配置与网段规划

  • 编辑 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 }
      
        ]
      }
          
      
  • 使配置生效:sudo systemctl restart docker
  • 规划建议
    • 避免与宿主机和现有内网网段冲突(如 10.0.0.0/8172.16.0.0/12192.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 的“副接口”或使用额外路由策略。

五 常见问题与排查

  • 端口访问不通
    • 确认容器端口已映射:docker ps 查看 PORTS;必要时使用 -p 8080:80 显式映射。
    • 检查宿主机防火墙/安全组是否放行对应端口(如 firewalld/iptables)。
  • 自定义 bridge 无法指定 IP
    • 仅自定义 bridge 支持 --ip,默认 bridge 不支持;先创建自定义网络再指定 IP。
  • 容器间不通
    • 确认在同一网络:docker network inspect < net> 查看 Containers;必要时 docker network connect 加入网络。
  • 外部无法直接访问容器
    • bridge 模式需通过 -p 做端口映射或改用 host 模式;检查 NAT/防火墙规则。
  • 修改默认网桥或 MTU 后未生效
    • 修改 /etc/docker/daemon.json 后需 systemctl restart docker,并重启容器。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux Docker网络怎么配置
本文地址: https://pptw.com/jishu/757197.html
filezilla ubuntu版本怎么选 Docker镜像在Linux如何拉取

游客 回复需填写必要信息