1.列出当前已有的网络

[root@host1 ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
db2f3a6af212   bridge    bridge    local
4251d9be020b   host      host      local
ba96ad98e029   none      null      local

2.启动两个 ash ( Alpine 操作系统默的认 Shell )的 Alpine 容器

[root@host1 ~]# docker run -dit --name alpine1 alpine ash
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
9824c27679d3: Pull complete 
Digest: sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
Status: Downloaded newer image for alpine:latest
416a7a0cc2472bc5b19cdd4d176f794e42f9f0ccb597a1a5ff0ec3102b45550c
[root@host1 ~]# docker run -dit --name alpine2 alpine ash
3af02021ac727a3eb6bc2d7a62c25abceb812e02af41ec3dd5882b3ec45a1e9f

3.检查两个容器是否已经启动

[root@host1 ~]# docker container ls
CONTAINER ID   IMAGE      COMMAND                   CREATED              STATUS              PORTS                                         NAMES
3af02021ac72   alpine     "ash"                     23 seconds ago       Up 22 seconds                                                     alpine2
416a7a0cc247   alpine     "ash"                     About a minute ago   Up About a minute                                                 alpine1
0dbf7ea2178e   registry   "/entrypoint.sh /etc…"   32 hours ago         Up 3 minutes        0.0.0.0:5000->5000/tcp, [::]:5000->5000/tcp   myregistry

4.查看桥接网络的详细信息

[root@host1 ~]# docker network inspect bridge
[
    {
        "Name": "bridge",
        "Id": "db2f3a6af212de490f7bd8a74d205b3b17c75a9dad474e7295061a27fd46c681",
        "Created": "2025-09-11T23:15:23.257609948+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv4": true,
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "0dbf7ea2178e94893974afab55dec16b2682c9b8038c4dfcd6c6a94f2e01845d": {
                "Name": "myregistry",
                "EndpointID": "04a0e63ecd2e9df4f9229a590a1eb225b8ffa20a61bf34cf59b7028b370da02d",
                "MacAddress": "ba:c1:c7:1e:98:8f",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            },
            "3af02021ac727a3eb6bc2d7a62c25abceb812e02af41ec3dd5882b3ec45a1e9f": {
                "Name": "alpine2",
                "EndpointID": "e52a58ee004da45342e30e622323cdf978ae2ac2551bc45755ca3fea790d289a",
                "MacAddress": "5e:ef:46:89:98:ad",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            },
            "416a7a0cc2472bc5b19cdd4d176f794e42f9f0ccb597a1a5ff0ec3102b45550c": {
                "Name": "alpine1",
                "EndpointID": "70010907049ba7b00ae110451a17111a2dde18bebd86a7a46c555142acf5e2a8",
                "MacAddress": "42:dc:75:72:f7:6c",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

5.连接 alpine1 容器

[root@host1 ~]# docker attach alpine1
/ # ip addr show        (显示 alpine1 容器的网络接口)
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 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@if5: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
    link/ether 42:dc:75:72:f7:6c brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

6.连接外网

/ # ping -c 2 www.baidu.com
PING www.baidu.com (110.242.69.21): 56 data bytes
64 bytes from 110.242.69.21: seq=0 ttl=127 time=50.401 ms
64 bytes from 110.242.69.21: seq=1 ttl=127 time=52.453 ms

--- www.baidu.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 50.401/51.427/52.453 ms

7.尝试 ping alpine2 容器

/ # ping -c 2 172.17.0.4
PING 172.17.0.4 (172.17.0.4): 56 data bytes
64 bytes from 172.17.0.4: seq=0 ttl=64 time=0.052 ms
64 bytes from 172.17.0.4: seq=1 ttl=64 time=0.072 ms

--- 172.17.0.4 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.052/0.062/0.072 ms
/ # ping -c 2 alpine2
ping: bad address 'alpine2'

表示 ping 不通,不能通过容器名来访问

8.摆脱 alpine1 容器而不要让他停止

Ctrl + P + Q

9.停止并删除这两个容器

[root@host1 ~]# docker container stop alpine1 alpine2
alpine1
alpine2
[root@host1 ~]# docker container rm alpine1 alpine2
alpine1
alpine2

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐