Bootstrap

了解Docker默认的网络端口172.17.0.1/16

了解Docker默认的网络端口172.17.0.1/16

Docker是一个开源的平台,它使开发者能够在容器中轻松创建、部署和运行应用程序。Docker的网络功能是其核心功能之一,默认情况下,Docker会创建一个桥接网络,并分配一个默认的子网,这就是172.17.0.1/16

什么是172.17.0.1/16?

172.17.0.1/16 是一个私有IP地址范围,属于RFC1918指定的私有网络地址。这意味着它不能在互联网上被路由,只能在本地网络中使用。具体来说,172.17.0.1/16表示一个从172.17.0.1172.17.255.255的IP地址范围,包含了65534个IP地址。

Docker中的桥接网络

当你安装并启动Docker时,它会自动创建一个名为bridge的默认桥接网络。这个桥接网络是Docker容器之间以及容器与主机之间通信的默认网络。bridge网络使用的子网就是172.17.0.1/16

在这个网络中,每个容器都会被分配一个唯一的IP地址,容器之间可以通过这个IP地址相互通信。bridge网络也提供了NAT功能,使容器能够访问外部网络(例如互联网),而外部网络不能直接访问容器。

查看和管理Docker网络

你可以使用以下命令来查看Docker网络:

docker network ls

输出示例:

NETWORK ID     NAME      DRIVER    SCOPE
b850e41a0d54   bridge    bridge    local

你可以使用以下命令查看bridge网络的详细信息:

docker network inspect bridge

输出示例:

[
    {
        "Name": "bridge",
        "Id": "b850e41a0d54",
        "Created": "2024-07-13T12:34:56.789012345Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        ...
    }
]

自定义Docker网络配置

虽然Docker默认使用172.17.0.1/16作为桥接网络的子网,但你可以创建自定义网络,并指定自己的子网。以下是一个示例:

docker network create --subnet=192.168.1.0/24 my_custom_network

然后,你可以在启动容器时指定使用这个自定义网络:

docker run --network=my_custom_network my_image

总结

172.17.0.1/16是Docker默认桥接网络的子网,它为容器提供了一个私有IP地址范围,容器可以通过这个网络进行通信和访问外部资源。了解和管理Docker的网络配置是使用Docker的重要技能之一,通过自定义网络配置,你可以更灵活地控制容器的网络环境。

;