Docker 网络简介:工作流程、网络基础、网络命令

已发表: 2020-04-30

目录

介绍

在这个虚拟化时代,网络管理员不再只处理传统的网络组件,例如路由器、LAN/WAN 组件和交换机。 他们必须在虚拟化平台上处理网络组件。 整个 IT 行业都对容器化的概念感兴趣,其中强大的网络技能至关重要。

由于 Docker 是最常用的容器化软件之一,因此Docker 网络技能对于配置容器非常重要。 目前,超过12,000 家公司使用 Docker 容器来运送他们的应用程序 这些公司包括摩根大通、ThoughtWorks 和 Neudesic。

在本文中,我们将了解 Docker 的介绍, Docker 网络的基础知识

让我们首先了解 Docker 的基础知识。

什么是 Docker?

Docker是一个引入容器化概念的软件打包平台。 容器化是软件应用程序与所有必需的依赖项(如库、模块和操作系统)打包的过程。 这使得该软件可以在任何环境中轻松执行。

这些软件包称为Docker 容器 这些容器用于为特定环境部署应用程序。 它可以是 Ubuntu 容器、CentOS 容器、Tomcat-Ubuntu 或 CakePHP 容器。

比方说,创建一个 Java 应用程序是为了在安装了 Tomcat 服务器的环境中执行。 开发完成后,应用程序被送去测试。 测试人员必须重新设置 Tomcat 服务器才能运行应用程序。 然后,它将被发送到生产环境,这将再次需要设置相同的环境。

但是,一个已经在其中的环境的 Docker 容器将解决从头开始的问题。 因此,开发人员、测试人员和生产单位成员可以执行应用程序,而无需一次又一次地设置 Tomcat 服务器。

阅读: Docker 项目理念和主题

码头工人工作流程

应用程序或项目代码写在Docker 文件中。 此文件包含应用程序要求和依赖项。 该文件生成一个Docker 映像,稍后用于执行文件中的代码。

映像包含运行应用程序所需的代码、环境变量、配置文件、运行时和库。 然后将图像上传到Docker Hub ,这是一个由 Docker 图像组成的 GIT 存储库。 从这些存储库中,您可以获取和上传您自己的 Docker 映像。

质量保证团队或公司生产团队的成员获取图像以开发其容器。 由于所有这些容器可能相互隔离, Docker 网络是它们相互交互的一组规则。

现在您对 Docker 有了基本的了解,让我们仔细看看Docker 网络

另请阅读:印度的 Docker 工资

Docker 网络基础

最初安装 Docker 时,配置了三个不同的 Docker 网络——无、主机和网桥。 none 和 host 是 Docker 堆栈的重要组件,不能删除。 可以配置桥接网络,称为 docker0 网络。

Docker 可用于创建许多网络。 您可以将容器添加到多个网络。 连接到多个网络的容器可以与这些网络的容器连接。

Docker中使用的主要网络驱动如下:

这是 Docker 在主机上创建的私有默认网络。 该网络会自动创建一个 IP 子网和网关。 属于该网络的容器是同一子网的一部分。 因此,该网络中的容器通过 IP 寻址进行通信。

当应用程序在独立容器中执行时,桥接网络驱动程序非常有用。 Docker 安装默认代表 docker0。 如果您在控制台中键入以下命令,Docker 将返回描述桥接网络的 JSON 对象:

码头工人网络检查桥

主持人

Host 驱动程序用于独立容器 如果容器使用宿主机组网方式,那么Doc​​ker宿主机和网络栈之间的隔离就被解除了。 容器没有获得分配的 IP 地址。

例如,执行一个绑定到 80 端口的容器,并使用主机网络。 在这种情况下,容器的应用程序将在主机 IP 地址的端口 80 上可用。 当容器处理大量端口时,这种网络模式很有用。

此外,主机驱动程序允许您在同一台主机上运行多个 Web 容器。

没有

在这种类型的网络中,容器无法访问外部网络,也不会连接到其他容器或网络。 当您希望禁用特定容器上的网络堆栈时,使用无。

None 只有一个环回接口,这意味着没有外部网络接口。

覆盖

这用于创建跨越 swarm 集群中所有节点的内部专用网络。 docker swarm 网络是一组正在执行 Docker 应用程序的虚拟机或物理机。 这个网络驱动程序在Docker 网络中很重要,因为它允许独立容器和 swarm 服务之间的通信。

不同 Docker 守护程序上的独立容器也可以与此驱动程序交互。 因此,您不必为容器执行操作系统级别的路由。

麦克兰

该网络允许您将 MAC 地址分配给容器。 这使它看起来像一个物理设备。 使用此地址,Docker 守护程序将流量路由到特定路由器。 Docker 守护进程是在主机操作系统上运行并与之交互以执行不同活动的服务器。 Macvlan 网络简化了容器之间的通信。

在处理预期连接到物理网络的遗留应用程序时, Macvlan是一个不错的选择。 如果你建立一个 Macvlan 网络,它可以有两种模式——桥接模式或 802.1q 中继桥接模式。

网络插件

您可以将第三方网络插件与 Docker 一起使用。 这些插件在 Docker Hub 上可用,并且可以通过第三方供应商获得。

Docker 网络命令

最常见的docker 网络命令如下:

列出 Docker 网络

此代码将列出主机上的所有 Docker 网络 -

码头工人网络 ls

创建 Docker 网络

以下命令将帮助您在启动容器之前创建网络:

docker network create --driver drivername 名称

这里, drivername是网络驱动程序的名称, 列出网络命令

此命令用于列出可用的网络命令:

码头工人网络帮助

删除网络

rm 命令可用于删除网络。

码头工人网络 rm mynetwork

连接到 Docker 网络

创建 Docker 网络时,默认情况下它连接到桥接网络。 运行容器时,可以使用以下命令连接到另一个网络:

docker 容器运行 -it –net=mynetwork nginx

获取容器端口

您可以使用 port 命令获取容器的端口:

码头港口集装箱名称/ID

结论

Docker 是当今软件开发的一个重要方面。 随着越来越多的公司转向容器化,网络对于隔离容器很重要。 这允许开发安全地协同工作的 Web 应用程序。 这些网络有助于容器之间更好的通信。

Docker 帮助许多公司缩短了部署时间并降低了相关成本。 因此,如果您是初学者,本文将有助于您深入了解docker 网络的基础知识

如果您有兴趣了解有关全栈开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发 PG 文凭,该文凭专为在职专业人士设计,提供 500 多个小时的严格培训、9 个以上的项目和作业,IIIT -B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

为未来的职业做准备

行业值得信赖的学习 - 行业认可的认证。
现在申请