【赵渝强老师】Docker的Container网络模式

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: Docker容器在网络环境中彼此隔离,但可通过配置不同网络模式实现容器间通信。其中,container模式使容器共享同一网络命名空间,通过localhost或127.0.0.1互相访问,提高传输效率。本文介绍了container模式的特点及具体示例。

b051.png

由于Docker的容器彼此之间是逻辑隔离的,所以,在安装Docker时会为在容器创建隔离的网络环境。在该隔离的网络模式环境下,运行在宿主机上的各个容器具有完全独立的网络栈,并且Docker容器的网络环境与宿主机相互隔离。通过配置使用Docker的不同网络模式,可以使容器共享宿主机的网络命名空间,也可以实现容器间的相互访问。

   

视频讲解如下:

   

Docker一共提供了4种网络模式:bridge、container、host和none。下表对比了这4种通信模式的特点。


 

在container模式下,容器之间会共享网络环境。即一个容器会使用另一个容器的网络命名空间。因此,在这种模式下,容器之间可以通过localhost或者127.0.0.1进行相互间的访问,从而提高传输的效率。


提示:由于容器共享了网络环境,因此这种网络模式节约了网络的资源。但是运行在这种网络模式下的容器,不存在网络的隔离。它的网络隔离性会处于bridge模式与host之间。

   

container模式在一些特殊的场景中非常有用。例如:在Kubernetes中创建的Pod时,会首先创建Pod的基础容器;而Pod中的其他容器则采用的是container模式与基础容器进行通信。Pod中的各个容器采用localhost或者127.0.0.1进行通信,从而构造一个Pod整体。container模式的工作机制如下图所示。


   

下面通过具体示例来演示如何使用container模式。


(1)使用busybox镜像创建一个容器A,并查看容器的网络信息,如下图所示。

docker run -it busybox /bin/sh ifconfig



(2)开启一个新的命令行仓库查看容器A的ID。通过下图可以确定容器A的ID号是d71751ade532


(3)开启一个新的命令行窗口,并使用container模式创建一个新的容器B。

docker run -it --network=container:d71751ade532 busybox /bin/sh

其中,参数—network用于指定新容器需要使用哪一个容器的网络信息,这里使用的是容器A。


(4)查看容器B的网络信息,如下图所示。


(5)通过对比会发现,容器A和容器B使用了相同的网络命名空间。这是因为在创建容器B时使用了container模式,使得容器B不再创建自己的网络命名空间,而直接使用容器A的网络命名空间。



相关文章
|
NoSQL Linux Redis
Docker学习重点(8)~Docker网络
Docker学习重点(8)~Docker网络
118 0
|
20小时前
|
Docker 容器
【赵渝强老师】Docker的None网络模式
Docker容器在网络方面实现了逻辑隔离,提供了四种网络模式:bridge、container、host和none。其中,none模式下容器具有独立的网络命名空间,但不包含任何网络配置,仅能通过Local Loopback网卡(localhost或127.0.0.1)进行通信。适用于不希望容器接收任何网络流量或运行无需网络连接的特殊服务。
|
20小时前
|
Docker 容器
【赵渝强老师】Docker的Host网络模式
Docker容器在网络环境中是隔离的,可通过配置不同网络模式(如bridge、container、host和none)实现容器间或与宿主机的网络通信。其中,host模式使容器与宿主机共享同一网络命名空间,提高性能但牺牲了网络隔离性。
|
20小时前
|
Linux Docker 容器
【赵渝强老师】Docker的Bridge网络模式
本文介绍了Docker容器的网络隔离机制及其四种网络模式:bridge、container、host和none。重点讲解了默认的bridge模式,通过示例演示了如何创建自定义bridge网络并配置容器的网络信息。文中还附有相关图片和视频讲解,帮助读者更好地理解Docker网络的配置和使用方法。
|
18小时前
|
NoSQL Redis Docker
【赵渝强老师】使用Docker Compose管理容器
Docker Compose 通过 YAML 文件管理多个容器,简化复杂系统的部署和管理。本文介绍了 Docker Compose 的基本概念,并通过一个包含 Redis DB 和 Python Web 模块的示例,展示了如何使用 Docker Compose 部署和管理多容器应用。手动部署和 Docker Compose 部署的对比突显了 Docker Compose 在系统复杂度增加时的优势。
|
1月前
|
Linux 应用服务中间件 Shell
docker学习--docker容器镜像常用命令大全(简)
本文档详细介绍了Docker中的镜像命令与容器管理命令。镜像命令部分涵盖了镜像搜索、下载、上传等操作;容器管理命令则包括了容器的创建、启动、停止、删除及日志查看等功能。通过具体示例,帮助用户更好地理解和使用Docker相关命令。
133 0
|
6月前
|
Docker 容器
Ubantu docker学习笔记(六)容器数据卷——补充实验
Ubantu docker学习笔记(六)容器数据卷——补充实验
|
6月前
|
网络协议 应用服务中间件 nginx
一文详解Docker容器(Container)
一文详解Docker容器(Container)
|
存储 安全 Oracle
【Docker】Docker对用户的应用程序使用容器技术遵循的五个步骤和GRSEC详细讲解(文末赠书)
【Docker】Docker对用户的应用程序使用容器技术遵循的五个步骤和GRSEC详细讲解(文末赠书)
|
存储 前端开发 Cloud Native
【云原生Docker系列第十二篇】Docker consul的容器服务更新与发现(清晨和夜晚都请用力去生活)(一)
【云原生Docker系列第十二篇】Docker consul的容器服务更新与发现(清晨和夜晚都请用力去生活)(一)
243 0
【云原生Docker系列第十二篇】Docker consul的容器服务更新与发现(清晨和夜晚都请用力去生活)(一)
下一篇
无影云桌面