在本文中,我们将讨论为什么应该在默认桥网络上使用用户定义的桥网络。我们还将使用实际示例进行演示。
如果您使用用户定义的网桥进行容器网络连接,则该网络中的所有容器会自动将所有必需的端口公开给彼此,而不是公开给外部世界。这增加了容器之间的互操作性,并提供了更好的隔离性。
使用默认的桥接网络创建Docker容器时,只能使用IP地址进行彼此访问。但是,如果使用用户定义的网桥网络,则可以使用名称或别名来访问它们。
为了连接或断开Docker容器,您可以在用户定义的网络中随时随地轻松地进行操作。但是,在默认桥接网络的情况下,您需要停止容器并使用其他网络选项对其进行重新分配。如果用户定义的网桥网络中的另一组应用程序有不同的要求,则可以轻松配置它们。
创建网桥网络
让我们使用以下命令创建一个称为alpine-net的桥接网络。
sudo docker network create −−driver bridge my−alpine−net
这将返回创建的网络的网络ID。
列出所有网络
要检查my-alpine-net网桥网络是否已成功创建,请列出所有网络。
sudo docker network ls
您将发现使用桥接驱动程序和本地作用域创建了my-alpine-net网络。
检查高山网
您现在可以使用以下命令检查my-alpine-net网桥网络。
sudo docker network inspect my−alpine−net
您会发现该网络当前不包含任何与之关联的容器。
创建容器
让我们尝试创建容器并将它们与不同的网络规范相关联。
我们将在此处创建3个Alpine Image容器。
创建一个名为“ my-alpine-01”的容器,该容器将连接到默认网桥网络。
创建另一个容器“ my-alpine-02”,该容器将连接到my-alpine-net网络。
最后,创建另一个容器“ my-alpine-03”,该容器将同时连接到默认网桥和my-alpine-net网络。
sudo docker run −dit −−name my−alpine−01 alpine ash sudo docker run −dit −−name my−alpine−02 −−network my−alpine−net alpine ash sudo docker run −dit −−name alpine3 alpine ash sudo docker network connect my−alpine−net alpine3
检查网络
创建Docker容器并将其与网络关联之后,我们现在可以检查网络。
sudo docker network inspect my−alpine−net sudo docker network inspect bridge
您将发现my-alpine-01和my-alpine-03容器与默认网桥网络关联。另外,my-alpine-02和my-alpine-03容器与my-alpine-net网络关联。
观察结果
容器my-alpine-02和my-alpine-03在my-alpine-net用户定义的网桥网络中连接。您可以转到这些容器中的任何一个,并使用容器的名称或别名对另一个容器执行ping操作。
容器my-alpine-01和my-alpine-03连接到默认网桥网络。如果转到这些容器中的任何一个并尝试对另一个容器执行ping操作,则将需要指定IP地址,并且不能使用容器的名称或别名来完成此操作。
sudo docker attach my−alpine−03 ping −c 3 172.17.0.2
上面的命令将成功。在这里,我们进入了my-alpine-03容器并使用其IP地址对my-alpine-01容器执行了ping操作。
sudo docker attach my−alpine−02 ping −c 3 my−alpine−03
上面的命令也将成功,因为我们处于用户定义的网桥网络中,并使用name ping另一个容器。但是,以下命令将引发错误。
sudo docker attach my−alpine−01 ping −c 3 my−alpine−03
另外,如果您输入my-alpine-02容器并尝试ping my-alpine-01容器,则将抛出错误,因为它们位于不同的子网中。
总之,在本文中,我们看到了在默认网桥网络上创建用户定义的自定义网桥网络的优势。您可以通过它们的名称或别名访问用户定义的桥接网络中的其他容器,并且与默认容器相比,它还提供了更好的互操作性。
本文向大家介绍Docker 上市网络,包括了Docker 上市网络的使用技巧和注意事项,需要的朋友参考一下 示例 该命令列出了在本地Docker主机上创建的所有网络。它包括默认网桥bridge网络,主机host网络和空null网络。默认情况下,所有容器都连接到默认网桥bridge网络。
本文向大家介绍Docker主机网络与网桥网络,包括了Docker主机网络与网桥网络的使用技巧和注意事项,需要的朋友参考一下 可用于Docker网络的单主机网络有两种类型:“主机”和“桥”网络。单主机网络意味着它们的影响对于每个单独的主机都是局部的。 在主机网络的情况下,特定的Docker容器可以直接使用主机的网络来发送和接收数据包。对于网桥网络,它需要端口映射才能进行通信。 为了更好地理解它们,让
我有一个10.101的服务器VLAN。10.0/24,我的Docker主机是10.101。10.31. 如何在Docker主机(VM)上配置网桥网络,以便所有容器都可以直接连接到LAN网络,而无需在默认的172.17上重定向端口。0.0/16? 我尝试过搜索,但到目前为止我找到的所有howto都导致SSH会话丢失,我不得不从控制台进入VM以恢复我执行的步骤。
业务网络定义是Hyperledger Composer编程模型的一个关键概念。它们由在composer-common模块中定义类BusinessNetworkDefinition表示,并由composer-admin和composer-client导出。 业务网络定义由以下部分组成: 一组模型文件 一组JavaScript文件 一个访问控制文件 模型文件定义了业务网络的业务领域,而JavaScri
我有一个 docker 容器,我想给它 --network=host AND -。我需要连接到主机网络才能将主机数据狗服务器 (UDP) 和 网络用于其数据库。 尝试添加这两个网络会导致。 知道正确的处理方法吗?
本文向大家介绍删除Docker网络,包括了删除Docker网络的使用技巧和注意事项,需要的朋友参考一下 示例 该命令app-backend从Docker主机中删除用户定义的网络。网络上所有未通过其他网络连接的容器将失去与其他容器的通信。无法删除默认的桥接bridge网络,host主机网络或null空网络。