🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。
🏀系列专栏:陈童学的日记
💡其他专栏:C++STL,感兴趣的小伙伴可以看看。
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​
⛱️万物从心起,心动则万物动🏄‍♂️

在这里插入图片描述

前言:Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux系统 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker中network的概要、常用命令、网络模式以及底层ip和容器映射变化的详细讲解

Docker network的概要

Docker网络是Docker容器之间和容器与外部世界之间进行通信的关键组件。它允许容器之间相互通信,并提供与外部网络的连接。下面是关于Docker网络的一些概要:

  • 1.Docker网络模型:
      Docker网络模型包括三个主要组件:容器、网络和端点。容器是运行应用程序的独立环境,网络提供容器之间和容器与外部世界之间的通信路径,而端点则是连接容器和网络的桥梁。

  • 2.Docker网络类型:
      Docker支持多种网络类型,包括桥接网络、主机网络、覆盖网络和无网络。桥接网络是默认的网络类型,它使用Docker daemon主机上的桥接接口将容器连接到主机网络。主机网络直接将容器连接到主机网络接口,使得容器可以直接访问主机上的网络资源。覆盖网络是多个Docker守护进程连接在一起的虚拟网络,它允许容器在不同主机上进行通信。无网络类型则表示容器没有网络访问能力。

  • 3.Docker网络驱动程序:
      Docker网络驱动程序负责创建和管理Docker网络。常见的驱动程序包括bridge、host、overlay等。bridge驱动程序是默认的网络驱动程序,它创建一个本地的软件桥接接口,用于连接容器和宿主机的网络。host驱动程序直接使用宿主机网络接口,使得容器可以直接访问宿主机的网络资源。overlay驱动程序用于创建跨多个Docker守护进程的覆盖网络。

  • 4.Docker网络命令:
      Docker提供了一组命令来管理和配置网络。常见的命令包括docker network create用于创建网络,docker network connect用于连接容器到网络,docker network inspect用于查看网络信息等。

  • 5.Docker网络的使用场景:
      Docker网络可用于各种使用场景,包括单主机部署、多主机集群、微服务架构等。通过使用不同的网络类型和驱动程序,可以灵活地配置和管理Docker网络,以满足不同的需求。

在这里插入图片描述

network的常用命令

上面我们提及到了Docker network,那么关于network的常用命令有哪些呢?让我们一起来看看吧。

  • 1.创建网络:
docker network create <network_name>

该命令用于创建一个新的Docker网络,其中<network_name>是网络的名称。

  • 2.列出网络:
docker network ls

该命令用于列出所有可用的Docker网络。

  • 3.查看网络详情:
docker network inspect <network_name>
  • 4.连接容器到网络:
docker network connect <network_name> <container_name>

该命令用于将已创建的容器连接到指定的Docker网络中,其中<network_name>是网络名称,<container_name>是容器名称或ID。

  • 5.断开容器与网络的连接:
docker network disconnect <network_name> <container_name>

该命令用于断开指定容器与指定Docker网络的连接

  • 6.删除网络:
docker network rm <network_name>

该命令用于删除指定的Docker网络,其中<network_name>是要删除的网络名称。

以上就是一些常用的Docker网络命令啦,可以用于创建、管理和删除Docker网络。如有问题,欢迎各位指出
在这里插入图片描述

network的网络模式

接下来让我们来看看network的网络模式有哪几种呢。Docker提供了多种网络模式,可以根据不同的需求选择适合的网络模式。以下是一些常见的Docker网络模式:

  • 1.Bridge模式(桥接模式):
      桥接模式是默认的Docker网络模式。在桥接模式下,Docker会为每个容器分配一个唯一的IP地址,并将它们连接到宿主机上的桥接接口。容器之间可以通过IP地址进行通信,也可以通过容器名称进行通信。此外,桥接模式允许容器与宿主机以及宿主机上的其他网络资源进行通信。

  • 2.Host模式(主机模式):
      主机模式下,Docker容器与宿主机共享网络栈。容器将直接使用宿主机的网络接口,而不会获得自己的网络命名空间。这意味着容器可以使用宿主机上的所有网络资源,包括IP地址、端口等。由于与宿主机共享网络栈,容器之间的端口冲突可能会发生。

  • 3.None模式(无网络模式):
      在无网络模式下,Docker容器没有网络连接。这意味着容器无法访问外部网络,也无法与其他容器进行通信。无网络模式适用于一些安全性要求较高的场景,或者仅需要运行计算型任务而不涉及网络通信的场景。

  • 4.Overlay模式(覆盖模式):
      覆盖模式用于创建跨多个Docker守护进程的覆盖网络。覆盖网络允许不同宿主机上的容器之间进行通信,使得容器可以在多主机集群中无缝运行。覆盖网络使用了Swarm模式,它是Docker的集群管理工具。

network底层ip和容器映射变化

  在Docker网络中,有两个关键的概念:底层IP和容器映射

  • 1.底层IP:每个Docker容器都会分配一个底层IP地址,这个地址是在Docker宿主机上的虚拟网络接口上分配的。底层IP是容器内部使用的IP地址,用于容器内部进程之间的通信。

  • 2.容器映射:容器映射是指将容器的端口映射到宿主机的端口,以便容器可以通过宿主机的网络接口与外部进行通信。当我们在创建容器时使用-p--publish参数指定端口映射规则时,Docker会将容器内部的端口映射到宿主机上的一个随机端口或指定的端口上。

  具体来说,当我们创建一个Docker容器并指定端口映射规则时,Docker会在宿主机上创建一个转发规则,将宿主机上的指定端口与容器内部的端口进行绑定。这样,当外部系统通过宿主机的IP地址和绑定的端口访问时,请求会被转发到容器内部的对应端口上。

  举个例子,假设我们创建了一个名为webappDocker容器,并将容器内部的80端口映射到宿主机的8080端口。那么,当我们通过宿主机的IP地址和8080端口访问时,请求会被转发到容器内部的80端口,从而访问到容器中运行的Web应用。

  综上所述的话呢,底层IP是容器内部使用的IP地址,用于容器内部进程之间的通信;而容器映射是将容器的端口映射到宿主机的端口,以便容器可以与外部网络进行通信。通过这种方式,Docker网络提供了灵活且可定制的网络配置选项,使得容器可以轻松地与其他容器和外部系统进行通信。

在这里插入图片描述

如果本文对大家有所帮助的话,还望各位能给我点赞、收藏并评论一下,感谢各位💕!!! 另如果大家有什么疑问或者建议的话,欢迎评论区留言。

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐