CodeGym /课程 /Docker SELF /创建和管理网络

创建和管理网络

Docker SELF
第 17 级 , 课程 1
可用

2.1 基本命令 docker network

Docker中的网络允许容器彼此交互以及与外部网络交互。docker network命令提供了创建、配置和管理网络的灵活功能,确保容器网络交互的隔离性和控制力。在这节讲座中,我们将详细讲解docker network命令及其用于管理网络的方式。

主要的docker network命令:

  1. docker network create
  2. docker network ls
  3. docker network inspect
  4. docker network connect
  5. docker network disconnect
  6. docker network rm

创建网络:命令 docker network create

docker network create命令用于创建新网络。你可以使用不同的驱动程序创建网络,例如bridge, host, overlaymacvlan

使用bridge驱动程序创建网络的示例

Terminal


docker network create --driver bridge my_bridge_network 

使用overlay驱动程序创建网络的示例

Terminal


docker network create --driver overlay my_overlay_network 

使用macvlan驱动程序创建网络的示例

Terminal

docker network create --driver macvlan \
  --subnet=192.168.1.0/24   \
  --gateway=192.168.1.1 \
  -o parent=eth0 my_macvlan_network

2.2 网络操作命令

1. 查看可用网络:命令 docker network ls

命令 docker network ls 会显示 Docker 中已创建的所有网络列表。

Terminal


docker network ls 

命令的输出格式如下:

Terminal


NETWORK ID          NAME                DRIVER              SCOPE
0e7e2d58fe94        bridge              bridge              local
9c84fdfc69ee        host                host                local
71cfb6a79d9e        none                null                local

2. 查看网络信息:命令 docker network inspect

命令 docker network inspect 用于获取特定网络的详细信息,包括已连接的容器、子网和网关设置。

使用示例:

Terminal


docker network inspect my_bridge_network 

命令的输出内容将以 JSON 格式显示网络信息:

JSON

[
    {
        "Name": "my_bridge_network",
        "Id": "0e7e2d58fe94",
        "Created": "2021-01-01T00:00:00.000000000Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "container_id": {
                "Name": "my_container",
                "EndpointID": "6c52f8c75c1e",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

3. 将容器连接到网络:命令 docker network connect

命令 docker network connect 用于将一个已运行的容器连接到现有的网络。

使用示例:

Terminal


docker network connect my_bridge_network my_container 

4. 断开容器与网络的连接:命令 docker network disconnect

命令 docker network disconnect 用于断开容器与网络的连接。

使用示例:

Terminal


docker network disconnect my_bridge_network my_container 

5. 删除网络:命令 docker network rm

命令 docker network rm 用于删除网络。注意,只有在断开所有已连接的容器后才能删除网络。

使用示例:

Terminal


docker network rm my_bridge_network 

2.3 docker network命令示例

有关docker network命令的使用示例

示例 1: 创建和使用bridge网络

创建网络:

Terminal

docker network create --driver bridge my_bridge_network 

运行容器并连接到网络:

Terminal

docker run -d --name container1 --network my_bridge_network nginx

docker run -d --name container2 --network my_bridge_network redis 

检查网络:

Terminal

docker network inspect my_bridge_network 

docker network inspect命令的输出会包含JSON格式的详细网络信息。为了让输出更易于阅读,可以使用jq工具:

Terminal

docker network inspect my_bridge_network | jq

这非常方便用于过滤和结构化查看网络数据,比如已连接的容器、它们的IP地址和子网设置。

示例 2: 连接和断开容器

运行容器:

Terminal

docker run -d --name my_container nginx 

将容器连接到网络:

Terminal

docker network connect my_bridge_network my_container 

断开容器与网络的连接:

Terminal

docker network disconnect my_bridge_network my_container 
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION