什么是「;Docker子网“;用来做什么?

什么是「;Docker子网“;用来做什么?,docker,docker-networking,docker-desktop,Docker,Docker Networking,Docker Desktop,docker desktop中有一个选项,允许更改“docker子网”。我看不到这个默认子网在任何地方使用 我试图对每个docker内部网络进行docker network inspect,检查了docker desktop WSL2发行版和我的Windows主机的路由或IP,但我看不到在任何地方使用默认子网(即使在设置自定义子网时) 这不会更改docker network inspect bridge或任何其他网桥中使用的子网。 我很难找到关于它是什么和/或它的用途的任何文档。在大多数情况下

docker desktop中有一个选项,允许更改“docker子网”。我看不到这个默认子网在任何地方使用

我试图对每个docker内部网络进行
docker network inspect
,检查了docker desktop WSL2发行版和我的Windows主机的路由或IP,但我看不到在任何地方使用默认子网(即使在设置自定义子网时)

这不会更改docker network inspect bridge或任何其他网桥中使用的子网。


我很难找到关于它是什么和/或它的用途的任何文档。

在大多数情况下,它是一个内部实现细节,您不需要担心

您实际需要更改此值的唯一时间是主机网络是否具有相同的地址。在这种情况下,您可以将其更改为任何不冲突的内容。例如,如果您的主机网络恰好是192.168.65.0/24,那么您可以将Docker网络更改为192.168.66.0/24(或/28),这样就可以正常工作

容器内部有单独的IP地址,这是从中分配的默认子网。如果您
docker network创建了一个网络或正在使用docker Compose,将分配一个新的子网。这几乎完全是一个实现细节,您永远不需要知道这些地址:从Docker外部您无法访问这些地址(*),而在Docker内部,它提供了一个DNS系统,因此您可以使用容器名称作为主机名

更具体地说,如果你

docker run --rm busybox ifconfig
您将看到此子网中的地址


(*)…除了从实际运行容器的本机Linux主机的控制台进行连接的一个非常特殊的情况之外;但决不能从其他主机,或者如果您正在使用Docker Toolbox或Docker Desktop。

我运行了您的命令,但容器在默认子网中没有IP。我刚刚注意到一件更奇怪的事情,我在容器中设置的DNS服务器IP不同,而是属于默认子网的IP!请参见此处使用docker network创建而不指定子网(不指定--subnet)也不使用默认子网。见: