zhcn 技术 游戏 Docker 网络 101

Docker 网络 101

Docker 是开发人员构建和运行应用程序的绝佳工具。

有趣的事实:DotCloud 是一家平台即服务 (PaaS) 公司,实际上将其创建为内部工具。

然而,该公司很快意识到其真正潜力,并于 2013 年将其作为开源项目提供。现在的 Docker Inc 是Docker Inc.。它很快就流行起来,拥有数以万计的用户,并与红帽、IBM、微软、谷歌和思科系统等公司建立了广泛的合作伙伴关系。

当今的软件开发需要敏捷性和对变化的快速响应。我们通过故事点评估我们的工作,参与站立会议,并使用 Scrum 等方法。 Docker 支持我们的敏捷性。

您必须意识到软件开发的部署阶段涉及大量成本。这就是 Docker 平台发挥作用的地方。 Docker 平台通过使用操作系统级虚拟化将软件放入容器中来简化部署。

码头枢纽
码头枢纽

这个平台的伟大之处在于,您的应用程序及其所有依赖项(二进制文件、库、配置文件、脚本、jar 等)都捆绑到一个易于使用的包中。这是一种简单、标准化的方法,可以让世界各地的软件开发人员的生活变得更加轻松。

Docker 简化了跨平台协作和网络

在 Docker 出现之前,通过开发管道管理软件的移动需要结合虚拟机、配置管理工具、包管理系统和复杂的库依赖关系网络等技术。维护和管理这些工具需要熟练的工程师。最必要的自定义设置。

Docker 改变了这一点,允许参与此过程的所有工程师以单一语言进行交流,从而简化了协作。

Docker 容器使用 Docker 网络通过主机相互通信并与外界通信。容器网络模型 (CNM) 使用多种不同的网络驱动程序控制 Docker 网络。网络选择标准基于容器的功能和用途。

它们非常强大,因为它们允许您将其他平台的工作负载连接到 Docker 服务和容器。无论您运行的是 Windows 还是 Linux,您都可以使用 Docker 以独立于平台的方式管理 Docker 主机。

Docker 网络是如何工作的?

Docker 指定了一个基本网络模型,称为容器网络模型 (CNM),其中包含实现容器网络的软件必须满足的规范。 CNM 在控制台式分布式键/值存储中维护网络配置。

Docker-网络-容器
Docker-网络-容器

CNM 的三个组件是沙箱、端点和网络。

  1. 沙箱:沙箱存储容器的网络配置。在容器内部,它充当网络堆栈。
  2. 端点:端点是通常成对出现的网络接口。通过将一端放置在您选择的网络中并将另一端放置在沙箱中来配置该对。此外,一个端点仅参与一个网络,而一个网络沙箱可以包含多个端点。
  3. 网络:由具有直接通信功能的端点集合组成。

在沙箱中,即使存在多个端点,每个端点也只能有一个网络连接。网络是一组多个互连的端点。

Docker Networking的网络驱动程序将CNM的思想付诸实践。 Docker 使用两种类型的网络驱动程序:本机网络驱动程序和远程网络驱动程序。本机网络驱动程序(通常称为内置驱动程序)由 Docker 提供并随 Docker Engine 一起提供。另一方面,来自供应商的第三方驱动程序称为远程网络驱动程序。

可以设计包含特定功能的驱动程序。

Docker 网络 101
Docker 网络 101

码头网络

Docker 有五个主要网络:bridge、host、overlay、none 和 macvlan。

桥接网络是docker的默认网络。我们在之前有关 Docker 架构的文章中概述了这些网络。

本文介绍了 Docker 网络的实用部分。了解如何详细了解 Docker 网络、连接到网络、创建网络等。那么让我们开始吧。

当您运行 Docker 容器时,除非指定了另一个网络,否则默认桥接网络调用docker0会与该容器关联。例如,运行ifconfig命令将检索桥接类型的 docker0 网络详细信息以及其他网络详细信息。

 osboxes@worker2:~$ ifconfig

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255

ether 02:42:f6:59:4a:5f  txqueuelen 0  (Ethernet)

RX packets 0  bytes 0 (0.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 0  bytes 0 (0.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255

inet6 fe80::763e:c0b4:14df:b273  prefixlen 64  scopeid 0x20<link>

ether 08:00:27:68:64:9a  txqueuelen 1000  (Ethernet)

RX packets 2157  bytes 2132896 (2.1 MB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 952  bytes 151610 (151.6 KB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.56.102  netmask 255.255.255.0  broadcast 192.168.56.255

inet6 fe80::20a:6c57:839d:2652  prefixlen 64  scopeid 0x20<link>

ether 08:00:27:53:45:82  txqueuelen 1000  (Ethernet)

RX packets 10597  bytes 1497146 (1.4 MB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 12058  bytes 1730219 (1.7 MB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10<host>

loop  txqueuelen 1000  (Local Loopback)

RX packets 1196  bytes 105396 (105.3 KB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 1196  bytes 105396 (105.3 KB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
Docker 网络 101
Docker 网络 101

列出网络

运行ls命令查看当前主机上运行的所有网络。可以看到,目前有7个网络,包括网桥、主机,安装Docker时都不会自动创建。根据您过去运行的容器,还可能包括其他自定义网络详细信息。

 @:~$ docker network ls

NETWORK ID          NAME                DRIVER              SCOPE

fec751a6ae21        bridge              bridge              local

21943b20735d        docker_gwbridge     bridge              local

f51d1f3379e0        host                host                local

ppp8i7tvrxa0        ingress             overlay             swarm

ba68f73abeed        mean-app_default    bridge              local

d466e75d86fa        mean_default        bridge              local

5e5d9a192c00        none                null                local 
Docker 网络 101
Docker 网络 101

网络巡检

您可以通过运行inspect命令来获取有关网络类型的所有详细信息。提供有关网络的信息,包括名称、ID、创建时间、范围、驱动程序和配置详细信息(例如子网和网关地址)。如果容器正在运行,还需提供容器详细信息。否则,返回空字符串。

 @:~$ docker network inspect bridge

[

{

"Name": "bridge",

"Id": "fec751a6ae21f20a06cdc6eb823e773caec063b6bf9a388016594e59fd1db475",

"Created": "2019-08-01T10:30:27.595054009-04:00",

"Scope": "local",

"Driver": "bridge",

"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": {},

"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": {}

}

]

创建网络

您可以使用create命令创建自己的网络。您必须使用--driver标志指定驱动程序类型。下面的示例使用桥接类型。

 @:~$ docker network create --driver bridge _network

08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409

运行ls命令检查网络是否创建。

 @:~$ docker network ls

NETWORK ID          NAME                DRIVER              SCOPE

fec751a6ae21        bridge              bridge              local

21943b20735d        docker_gwbridge     bridge              local

08e0da91f6de        _network   bridge              local

f51d1f3379e0        host                host                local

ppp8i7tvrxa0        ingress             overlay             swarm

ba68f73abeed        mean-app_default    bridge              local

d466e75d86fa        mean_default        bridge              local

5e5d9a192c00        none                null                local

接下来,在您创建的网络上运行 Docker 容器。我正在使用以下命令运行一个简单的 Apache 服务器容器。

 @:~$ docker run -it -d --network=_network httpd

38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002

运行Inspection命令查看_network的所有信息。这次,您可以通过检查输出来查看有关容器的更多详细信息。容器名称为Completed_dubinsky

 @:~$ docker network inspect _network

[

{

"Name": "_network",

"Id": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Created": "2019-09-03T13:56:36.244295204-04:00",

"Scope": "local",

"Driver": "bridge",

"EnableIPv6": false,

"IPAM": {

"Driver": "default",

"Options": {},

"Config": [

{

"Subnet": "172.21.0.0/16",

"Gateway": "172.21.0.1"

}

]

},

"Internal": false,

"Attachable": false,

"Ingress": false,

"ConfigFrom": {

"Network": ""

},

"ConfigOnly": false,

"Containers": {

"38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002": {

"Name": "determined_dubinsky",

"EndpointID": "30d252720e0f381ba01d6f5414525dff8587abcf3c4920100f112898a52c8a23",

"MacAddress": "02:42:ac:15:00:02",

"IPv4Address": "172.21.0.2/16",

"IPv6Address": ""

}

},

"Options": {},

"Labels": {}

}

]

网络断线

disconnect容器与网络的连接,请运行以下命令:您必须在disconnect 命令中指定网络名称和容器名称。

 @:~$ docker network disconnect _network determined_dubinsky

dependent_dubinsky 容器将不再在此网络上运行。容器字段将为空。

 @:~$ docker network inspect _network

[

{

"Name": "_network",

"Id": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Created": "2019-09-03T13:56:36.244295204-04:00",

"Scope": "local",

"Driver": "bridge",

"EnableIPv6": false,

"IPAM": {

"Driver": "default",

"Options": {},

"Config": [

{

"Subnet": "172.21.0.0/16",

"Gateway": "172.21.0.1"

}

]

},

"Internal": false,

"Attachable": false,

"Ingress": false,

"ConfigFrom": {

"Network": ""

},

"ConfigOnly": false,

"Containers": {},

"Options": {},

"Labels": {}

}

]

如果创建非桥接网络,则必须包含非桥接驱动程序名称。要创建overlay网络,请运行以下命令:

 @manager1:~$ docker network create --driver overlay  _network_2

ynd2858eu1cngwhpc40m3h1nx

@manager1:~$ docker network ls

NETWORK ID          NAME                DRIVER              SCOPE

fec751a6ae21        bridge              bridge              local

21943b20735d        docker_gwbridge     bridge              local

08e0da91f6de        _network   bridge              local

f51d1f3379e0        host                host                local

ppp8i7tvrxa0        ingress             overlay             swarm

ba68f73abeed        mean-app_default    bridge              local

d466e75d86fa        mean_default        bridge              local

5e5d9a192c00        none                null                local

ynd2858eu1cn        _network_2   overlay             swarm

要创建host网络,请使用 -driver 标志指定主机。下面的示例返回错误,因为只允许一个先前已运行的主机网络实例。因此,此命令不会创建另一个主机网络。

 @manager1:~$ docker network create --driver host  _network_3

Error response from daemon: only one instance of "host" network is allowed

结论

到目前为止,我们已经解释了 Docker 网络以及如何连接、断开、创建和检查它们。尝试以下命令来熟悉 Docket 网络。如果您有兴趣学习 Net DevOps,请查看此Udemy 课程。

合著者:索比.

Docker 是开发人员构建和运行应用程序的绝佳工具。

有趣的事实:DotCloud 是一家平台即服务 (PaaS) 公司,实际上将其创建为内部工具。

然而,该公司很快意识到其真正潜力,并于 2013 年将其作为开源项目提供。现在的 Docker Inc 是Docker Inc.。它很快就流行起来,拥有数以万计的用户,并与红帽、IBM、微软、谷歌和思科系统等公司建立了广泛的合作伙伴关系。

当今的软件开发需要敏捷性和对变化的快速响应。我们通过故事点评估我们的工作,参与站立会议,并使用 Scrum 等方法。 Docker 支持我们的敏捷性。

您必须意识到软件开发的部署阶段涉及大量成本。这就是 Docker 平台发挥作用的地方。 Docker 平台通过使用操作系统级虚拟化将软件放入容器中来简化部署。

码头枢纽
码头枢纽

这个平台的伟大之处在于,您的应用程序及其所有依赖项(二进制文件、库、配置文件、脚本、jar 等)都捆绑到一个易于使用的包中。这是一种简单、标准化的方法,可以让世界各地的软件开发人员的生活变得更加轻松。

Docker 简化了跨平台协作和网络

在 Docker 出现之前,通过开发管道管理软件的移动需要结合虚拟机、配置管理工具、包管理系统和复杂的库依赖关系网络等技术。维护和管理这些工具需要熟练的工程师。最必要的自定义设置。

Docker 改变了这一点,允许参与此过程的所有工程师以单一语言进行交流,从而简化了协作。

Docker 容器使用 Docker 网络通过主机相互通信并与外界通信。容器网络模型 (CNM) 使用多种不同的网络驱动程序控制 Docker 网络。网络选择标准基于容器的功能和用途。

它们非常强大,因为它们允许您将其他平台的工作负载连接到 Docker 服务和容器。无论您运行的是 Windows 还是 Linux,您都可以使用 Docker 以独立于平台的方式管理 Docker 主机。

Docker 网络是如何工作的?

Docker 指定了一个基本网络模型,称为容器网络模型 (CNM),其中包含实现容器网络的软件必须满足的规范。 CNM 在控制台式分布式键/值存储中维护网络配置。

Docker-网络-容器
Docker-网络-容器

CNM 的三个组件是沙箱、端点和网络。

  1. 沙箱:沙箱存储容器的网络配置。在容器内部,它充当网络堆栈。
  2. 端点:端点是通常成对出现的网络接口。通过将一端放置在您选择的网络中并将另一端放置在沙箱中来配置该对。此外,一个端点仅参与一个网络,而一个网络沙箱可以包含多个端点。
  3. 网络:由具有直接通信功能的端点集合组成。

在沙箱中,即使存在多个端点,每个端点也只能有一个网络连接。网络是一组多个互连的端点。

Docker Networking的网络驱动程序将CNM的思想付诸实践。 Docker 使用两种类型的网络驱动程序:本机网络驱动程序和远程网络驱动程序。本机网络驱动程序(通常称为内置驱动程序)由 Docker 提供并随 Docker Engine 一起提供。另一方面,来自供应商的第三方驱动程序称为远程网络驱动程序。

可以设计包含特定功能的驱动程序。

Docker 网络 101
Docker 网络 101

码头网络

Docker 有五个主要网络:bridge、host、overlay、none 和 macvlan。

桥接网络是docker的默认网络。我们在之前有关 Docker 架构的文章中概述了这些网络。

本文介绍了 Docker 网络的实用部分。了解如何详细了解 Docker 网络、连接到网络、创建网络等。那么让我们开始吧。

当您运行 Docker 容器时,除非指定了另一个网络,否则默认桥接网络调用docker0会与该容器关联。例如,运行ifconfig命令将检索桥接类型的 docker0 网络详细信息以及其他网络详细信息。

 osboxes@worker2:~$ ifconfig

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255

ether 02:42:f6:59:4a:5f  txqueuelen 0  (Ethernet)

RX packets 0  bytes 0 (0.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 0  bytes 0 (0.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255

inet6 fe80::763e:c0b4:14df:b273  prefixlen 64  scopeid 0x20<link>

ether 08:00:27:68:64:9a  txqueuelen 1000  (Ethernet)

RX packets 2157  bytes 2132896 (2.1 MB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 952  bytes 151610 (151.6 KB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.56.102  netmask 255.255.255.0  broadcast 192.168.56.255

inet6 fe80::20a:6c57:839d:2652  prefixlen 64  scopeid 0x20<link>

ether 08:00:27:53:45:82  txqueuelen 1000  (Ethernet)

RX packets 10597  bytes 1497146 (1.4 MB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 12058  bytes 1730219 (1.7 MB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10<host>

loop  txqueuelen 1000  (Local Loopback)

RX packets 1196  bytes 105396 (105.3 KB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 1196  bytes 105396 (105.3 KB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
Docker 网络 101
Docker 网络 101

列出网络

运行ls命令查看当前主机上运行的所有网络。可以看到,目前有7个网络,包括网桥、主机,安装Docker时都不会自动创建。根据您过去运行的容器,还可能包括其他自定义网络详细信息。

 @:~$ docker network ls

NETWORK ID          NAME                DRIVER              SCOPE

fec751a6ae21        bridge              bridge              local

21943b20735d        docker_gwbridge     bridge              local

f51d1f3379e0        host                host                local

ppp8i7tvrxa0        ingress             overlay             swarm

ba68f73abeed        mean-app_default    bridge              local

d466e75d86fa        mean_default        bridge              local

5e5d9a192c00        none                null                local 
Docker 网络 101
Docker 网络 101

网络巡检

您可以通过运行inspect命令来获取有关网络类型的所有详细信息。提供有关网络的信息,包括名称、ID、创建时间、范围、驱动程序和配置详细信息(例如子网和网关地址)。如果容器正在运行,还需提供容器详细信息。否则,返回空字符串。

 @:~$ docker network inspect bridge

[

{

"Name": "bridge",

"Id": "fec751a6ae21f20a06cdc6eb823e773caec063b6bf9a388016594e59fd1db475",

"Created": "2019-08-01T10:30:27.595054009-04:00",

"Scope": "local",

"Driver": "bridge",

"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": {},

"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": {}

}

]

创建网络

您可以使用create命令创建自己的网络。您必须使用--driver标志指定驱动程序类型。下面的示例使用桥接类型。

 @:~$ docker network create --driver bridge _network

08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409

运行ls命令检查网络是否创建。

 @:~$ docker network ls

NETWORK ID          NAME                DRIVER              SCOPE

fec751a6ae21        bridge              bridge              local

21943b20735d        docker_gwbridge     bridge              local

08e0da91f6de        _network   bridge              local

f51d1f3379e0        host                host                local

ppp8i7tvrxa0        ingress             overlay             swarm

ba68f73abeed        mean-app_default    bridge              local

d466e75d86fa        mean_default        bridge              local

5e5d9a192c00        none                null                local

接下来,在您创建的网络上运行 Docker 容器。我正在使用以下命令运行一个简单的 Apache 服务器容器。

 @:~$ docker run -it -d --network=_network httpd

38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002

运行Inspection命令查看_network的所有信息。这次,您可以通过检查输出来查看有关容器的更多详细信息。容器名称为Completed_dubinsky

 @:~$ docker network inspect _network

[

{

"Name": "_network",

"Id": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Created": "2019-09-03T13:56:36.244295204-04:00",

"Scope": "local",

"Driver": "bridge",

"EnableIPv6": false,

"IPAM": {

"Driver": "default",

"Options": {},

"Config": [

{

"Subnet": "172.21.0.0/16",

"Gateway": "172.21.0.1"

}

]

},

"Internal": false,

"Attachable": false,

"Ingress": false,

"ConfigFrom": {

"Network": ""

},

"ConfigOnly": false,

"Containers": {

"38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002": {

"Name": "determined_dubinsky",

"EndpointID": "30d252720e0f381ba01d6f5414525dff8587abcf3c4920100f112898a52c8a23",

"MacAddress": "02:42:ac:15:00:02",

"IPv4Address": "172.21.0.2/16",

"IPv6Address": ""

}

},

"Options": {},

"Labels": {}

}

]

网络断线

disconnect容器与网络的连接,请运行以下命令:您必须在disconnect 命令中指定网络名称和容器名称。

 @:~$ docker network disconnect _network determined_dubinsky

dependent_dubinsky 容器将不再在此网络上运行。容器字段将为空。

 @:~$ docker network inspect _network

[

{

"Name": "_network",

"Id": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Created": "2019-09-03T13:56:36.244295204-04:00",

"Scope": "local",

"Driver": "bridge",

"EnableIPv6": false,

"IPAM": {

"Driver": "default",

"Options": {},

"Config": [

{

"Subnet": "172.21.0.0/16",

"Gateway": "172.21.0.1"

}

]

},

"Internal": false,

"Attachable": false,

"Ingress": false,

"ConfigFrom": {

"Network": ""

},

"ConfigOnly": false,

"Containers": {},

"Options": {},

"Labels": {}

}

]

如果创建非桥接网络,则必须包含非桥接驱动程序名称。要创建overlay网络,请运行以下命令:

 @manager1:~$ docker network create --driver overlay  _network_2

ynd2858eu1cngwhpc40m3h1nx

@manager1:~$ docker network ls

NETWORK ID          NAME                DRIVER              SCOPE

fec751a6ae21        bridge              bridge              local

21943b20735d        docker_gwbridge     bridge              local

08e0da91f6de        _network   bridge              local

f51d1f3379e0        host                host                local

ppp8i7tvrxa0        ingress             overlay             swarm

ba68f73abeed        mean-app_default    bridge              local

d466e75d86fa        mean_default        bridge              local

5e5d9a192c00        none                null                local

ynd2858eu1cn        _network_2   overlay             swarm

要创建host网络,请使用 -driver 标志指定主机。下面的示例返回错误,因为只允许一个先前已运行的主机网络实例。因此,此命令不会创建另一个主机网络。

 @manager1:~$ docker network create --driver host  _network_3

Error response from daemon: only one instance of "host" network is allowed

结论

到目前为止,我们已经解释了 Docker 网络以及如何连接、断开、创建和检查它们。尝试以下命令来熟悉 Docket 网络。如果您有兴趣学习 Net DevOps,请查看此Udemy 课程。

合著者:索比.