Docker-网络管理-命令入门

一、命令入门

1 创建网络

1.1 语法

bash 复制代码
docker network create [options] network_name
  • -d,--driver:网络驱动:bridge、host、container、none
  • --subnet:指定该网络分配的网段(CIDR 格式,如:127.0.0.1/16)
  • --gateway:指定该网络的网关,该网络下,所有网络通信通过该网关路由
  • --ipv6:启动IPV6

小提示:

  1. 网关地址必须在设定的网段内
  2. 若不设定网段,docker会自动为其分配网段,且网段第一位为网关地址
  3. docker网络设定的网段,独立于宿主机的网段,由docker虚拟出来的网段

1.2 演示

创建一个bridge类型的网络,并且分配指定网段,然后查看该网络信息:

bash 复制代码
docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
4961851d7f3b   bridge    bridge    local
a6be76bcbdde   host      host      local
f446ebf2ce52   none      null      local

docker network create \
> --driver bridge \
> --subnet 192.178.0.0/16 \
> --gateway 192.178.0.1 \
> network_create_stu
9dc97a4b2fad7472081eff385cc2180177c8a1b5f89a664ce11b76a700c5a670
docker network ls
NETWORK ID     NAME                 DRIVER    SCOPE
4961851d7f3b   bridge               bridge    local
a6be76bcbdde   host                 host      local
9dc97a4b2fad   network_create_stu   bridge    local
f446ebf2ce52   none                 null      local
docker network inspect network_create_stu
[
    {
        "Name": "network_create_stu",
        "Id": "9dc97a4b2fad7472081eff385cc2180177c8a1b5f89a664ce11b76a700c5a670",
        "Created": "2026-02-18T14:43:55.392875116+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv4": true,
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.178.0.0/16",
                    "Gateway": "192.178.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

2 查看网络信息

2.1 语法

bash 复制代码
docker network inspect network_id [options]
  • -f,--format:指定格式输出

2.2 演示

bash 复制代码
docker network ls
NETWORK ID     NAME                 DRIVER    SCOPE
4961851d7f3b   bridge               bridge    local
a6be76bcbdde   host                 host      local
9dc97a4b2fad   network_create_stu   bridge    local
f446ebf2ce52   none                 null      local
docker network inspect -f json  network_create_stu
[{"Name":"network_create_stu","Id":"9dc97a4b2fad7472081eff385cc2180177c8a1b5f89a664ce11b76a700c5a670","Created":"2026-02-18T14:43:55.392875116+08:00","Scope":"local","Driver":"bridge","EnableIPv4":true,"EnableIPv6":false,"IPAM":{"Driver":"default","Options":{},"Config":[{"Subnet":"192.178.0.0/16","Gateway":"192.178.0.1"}]},"Internal":false,"Attachable":false,"Ingress":false,"ConfigFrom":{"Network":""},"ConfigOnly":false,"Containers":{},"Options":{},"Labels":{}}]
root@iZ2ze8ve39i30yl0dhbqneZ:~# 

3 连接/关闭网络

3.1 语法

bash 复制代码
docker network connect [options] network_name container_name
  • --ip:指定该网络下,容器的ip地址
  • --ipv6:指定该网络下,容器的ipv6地址
bash 复制代码
docker network disconnect [options] network_name container_name
  • -f:强制退出

3.2 演示

操作说明
  1. 创建两个网络 net1net2
  2. 启动c1容器,连接上述两个网络,查看c1网络信息
  3. 启动c2网络,连接net2,指定ip地址,查看c2网络信息
  4. 测试c1和c2连通性
  5. c2断开网络,查看c2网络信息
  6. 测试c1和c2连通性
操作演示
bash 复制代码
# 1. 创建net1 net2
docker network create \
> --driver bridge \
> --subnet 192.158.0.0/16 \
> --gateway 192.158.0.1 \
> net1
787b12b8fcc3a0f1317924bfdd683933b8f07d07c6b4ab5a82d0bfb31a1950b4
docker network create \
> --driver bridge \
> --subnet 192.178.0.0/16 \
> --gateway 192.178.0.1 \
> net2
33e2c9c18e6cd15271b2323394c6a00e3b23e9598041f742b8e4e183b5a8d297
docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
4961851d7f3b   bridge    bridge    local
a6be76bcbdde   host      host      local
787b12b8fcc3   net1      bridge    local
33e2c9c18e6c   net2      bridge    local
f446ebf2ce52   none      null      local

# 2. 启动c1,连接两个网络,查看c1网络信息
docker run -itd --network=net1 --ip 192.158.0.4 --name c1 busybox:latest 
bba37ca3c78e50d728be8c0c92c927097e61a2f35aa1008b4dcb4cedfc2b0efe
docker network connect --ip 192.178.0.3 net2 c1
docker ps
CONTAINER ID   IMAGE            COMMAND   CREATED          STATUS          PORTS     NAMES
bba37ca3c78e   busybox:latest   "sh"      50 seconds ago   Up 49 seconds             c1
docker exec -it c1 sh
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0@if462: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether 96:32:1d:a6:18:34 brd ff:ff:ff:ff:ff:ff
    inet 192.158.0.4/16 brd 192.158.255.255 scope global eth0
       valid_lft forever preferred_lft forever
3: eth1@if463: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether 5e:b7:87:b9:d3:e6 brd ff:ff:ff:ff:ff:ff
    inet 192.178.0.3/16 brd 192.178.255.255 scope global eth1
       valid_lft forever preferred_lft forever

# 3. 启动c2,连接net2,查看c2网络信息
docker run --network=net2 --ip 192.178.0.2 --name c2 -itd busybox:latest
c659f4aaa1739609a9d9ae797e3c24e2fbce3b2418e9a377f832b2e6db828cca
docker exec -it c2 sh
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0@if464: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether 6e:64:40:58:bc:e7 brd ff:ff:ff:ff:ff:ff
    inet 192.178.0.2/16 brd 192.178.255.255 scope global eth0
       valid_lft forever preferred_lft forever

# 4. 测试c1和c2连通性
docker exec -it c2 sh
ping c1
PING c1 (192.178.0.3): 56 data bytes
64 bytes from 192.178.0.3: seq=0 ttl=64 time=0.067 ms
64 bytes from 192.178.0.3: seq=1 ttl=64 time=0.102 ms
64 bytes from 192.178.0.3: seq=2 ttl=64 time=0.096 ms
^C
docker ecec -it c1 sh
ping c2
PING c2 (192.178.0.2): 56 data bytes
64 bytes from 192.178.0.2: seq=0 ttl=64 time=0.196 ms
64 bytes from 192.178.0.2: seq=1 ttl=64 time=0.093 ms
64 bytes from 192.178.0.2: seq=2 ttl=64 time=0.094 ms
64 bytes from 192.178.0.2: seq=3 ttl=64 time=0.098 ms
^C

# 5 断开c2和net2的连接,查看c2网络信息
docker network disconnect net2 c2
docker exec -it c2 sh
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever


# 6 测试c1和c2连通性
docker exec -it c2 sh
ping c1
ping: bad address 'c1'

4 删除网络

4.1 语法

指定删除:

bash 复制代码
docker network rm [options] [network_name...] 
  • -f 强制删除

批量清理:

bash 复制代码
# 删除未被使用/悬空的网络
docker network prune [options]
  • f:删除时,不提示信息,直接删除

4.2 演示

bash 复制代码
docker network ls 
NETWORK ID     NAME      DRIVER    SCOPE
4961851d7f3b   bridge    bridge    local
a6be76bcbdde   host      host      local
787b12b8fcc3   net1      bridge    local
33e2c9c18e6c   net2      bridge    local
f446ebf2ce52   none      null      local
docker network rm -f 787b12b8fcc3 33e2c9c18e6c
787b12b8fcc3
33e2c9c18e6c

# 批量删除(悬空网络)
docker network ls -f "dangling=true"
NETWORK ID     NAME      DRIVER    SCOPE
435ea5e8545d   n1        bridge    local
863f8c1b5fd4   n2        bridge    local
5d619d9dbfa9   n3        bridge    local
docker network prune
WARNING! This will remove all custom networks not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Networks:
n2
n3
n1
docker network ls -f "dangling=true" # dangling是否查看悬空
NETWORK ID   NAME      DRIVER    SCOPE
相关推荐
Gofarlic_oms15 小时前
利用API实现ANSYS许可证管理自动化集成
运维·服务器·开发语言·matlab·自动化·负载均衡
杨浦老苏5 小时前
大模型安全接入网关LinkAI
人工智能·docker·ai·群晖·隐私保护
档案宝档案管理5 小时前
权限分级管控,全程可追溯,筑牢会计档案安全防线
运维·网络·人工智能
倔强的石头1067 小时前
【Linux指南】基础IO系列(八):实战衔接 —— 给微型 Shell 添加完整重定向功能
linux·运维·服务器
观北海7 小时前
AiScan-N:AI全自动化渗透测试工具的深度技术解析
运维·自动化
Ujimatsu8 小时前
虚拟机安装Ubuntu 26.04.x及其常用软件(2026.4)
linux·运维·ubuntu
Dillon Dong8 小时前
【系列主题】Next.js 16 + Turbopack 的暗礁:深入剖析 Tailwind v4 的 CSS 模块解析陷阱
javascript·css·容器·turbopack
jc06209 小时前
6.1云原生之Docker
c++·docker·云原生
Agent产品评测局10 小时前
制造业生产调度自动化落地,完整步骤与避坑指南:2026企业级智能体选型与实战全景
运维·人工智能·ai·chatgpt·自动化
狂奔的sherry10 小时前
一次由 mount 引发的 Linux 文件系统“错觉”
linux·运维·服务器