小工具      在线工具  汉语词典  css  js  c++  java

【Docker】Docker网络与存储(三)

其他合集,docker,网络,容器,云原生 额外说明

收录于:115天前

前言:

Docker网络和存储的作用是实现容器之间的通信和数据持久化,以便有效地部署、扩展和管理容器化应用。

在这里插入图片描述

Docker网络

Docker网络是一种提供容器之间通信的机制,允许容器之间以及容器与主机之间进行通信。 Docker支持多种网络模式,包括桥接网络和覆盖网络。下面我将详细解释这两种网络模式。

桥接网络

桥接网络是 Docker 默认创建的网络模式。每当一个容器被创建时,Docker会自动在宿主机上创建一个虚拟网桥,容器就会连接到这个网桥,从而能够与其他容器以及连接到同一个网桥的宿主机进行通信。桥接网络的特点是容器可以互相访问,容器和主机也可以互相通信。

在这里插入图片描述

创建桥接网络

docker network create my_bridge_network

运行容器并连接到桥接网络

docker run -d --name container1 --network my_bridge_network nginx

运行另一个容器并将其连接到 my_bridge_network 网络

docker run -d --name container2 --network my_bridge_network nginx

容器之间的通信

在这里插入图片描述

在上面的示例中,容器container1和container2都连接到my_bridge_network网络。它们可以通过容器名称相互通信:

# 在container1中ping container2
docker exec container1 ping container2
# 在container2中ping container1
docker exec container2 ping container1

容器与主机之间的通信
容器与主机之间的通信是通过桥接网络实现的,因此,容器可以访问主机的服务或端口:

# 在容器中访问主机上的80端口(假设主机上有运行的Web服务)
docker exec container1 curl http://host_ip_address:80

覆盖网络

覆盖网络是一种用于连接多个 Docker 主机上的容器的网络模式。它允许在不同主机上运行的容器之间建立安全的通信通道,从而实现跨主机的容器互连。 Overlay 网络通常与 Docker Swarm 一起使用,为分布式应用程序启用容器编排。

在这里插入图片描述

创建一个覆盖网络

确保 Docker 主机已加入 Docker Swarm。如果没有,请运行以下命令来初始化 Swarm:

docker swarm init

然后,创建一个覆盖网络:

docker network create --driver overlay my_overlay_network

在 Docker Swarm 中运行服务并连接到覆盖网络

# 在Docker Swarm中运行一个服务并将其连接到my_overlay_network网络
docker service create --name web_server --network my_overlay_network --replicas 3 -p 80:80 nginx

容器之间的跨主机通信

# 在一个容器中ping另一个容器(它们可能运行在不同的Docker主机上)
docker exec -it container_id_1 ping container_id_2

Docker存储卷

Docker存储卷是用于保存数据的特殊文件或目录,可以在容器之间或与主机共享。存储卷提供了更持久的存储解决方案,因为容器被删除后,存储卷中的数据仍然存在,可以继续被其他容器使用。

在这里插入图片描述

创建和使用 Docker 存储卷

# 创建一个名为"my_volume"的Docker存储卷
docker volume create my_volume
# 运行一个容器并将"my_volume"卷挂载到容器的/mnt/data目录
docker run -d --name container_with_volume -v my_volume:/mnt/data nginx

在上面的例子中,我们创建了一个名为“my_volume”的Docker存储卷,并将其挂载到正在运行的容器container_with_volume的/mnt/data目录下。写入 /mnt/data 目录的任何数据都将保留在“my_volume”卷中。

# 在另一个容器中挂载相同的"my_volume"卷,并查看其中的数据
docker run -it --name container_with_volume_2 -v my_volume:/mnt/data busybox ls /mnt/data

总结

Docker网络是连接容器以及容器与主机之间的重要机制。桥接网络适合单主机上的容器通信,而覆盖网络适合跨主机的容器通信。 Docker存储卷提供了持久数据的解决方案,允许容器之间以及容器与主机之间共享数据。这些功能使 Docker 成为强大的容器化解决方案,使应用程序开发、部署和扩展更加灵活和高效。

. . .

相关推荐

额外说明

Java+Demo base64编解码

记录一下java base64编码和解码,也就是通常说的base6解密和base64加密 java(java8)中的base64工具 java.util.Base64 import java.io.UnsupportedEncodingException

额外说明

VirtualBox全屏模式&&自动缩放模式相互切换

添加链接描述 备忘使用!

额外说明

SSM配置文件

一、Spring 配置文件 1.1spring主配置文件模板 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans

额外说明

day4:Node.js 核心库

day4:Node.js 核心库 文章目录 day4:Node.js 核心库 常用工具模块 util 模块 Moment 模块 Lodash 模块 web模块 文件模块 path 模块 常用工具模块 Node.js有许多常用的工具,以下是一些常见的: u

额外说明

Java项目防止SQL注入的四种方案

-1. 什么是SQL注入? SQL注入(SQL Injection)是一种代码注入技术,是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。简单来说,SQL注入攻击者通过把SQL命令插入到Web

额外说明

ES6 —— 正则表达式

文章目录 一、正则表达式概述 二、正则表达式的特点 三、正则表达式的使用 四、测试正则表达式 五、正则表达式中的边界符 六、正则表达式字符类 七、正则表达式量词符 八、用户名验证 九、预定义类 十、座机号码验证 十一、字符串替换 一、正则表达式概述 什么

额外说明

C#——引用类型

C#——引用类型 定义为 类、委托、数组或 接口的类型是 引用类型。 在运行时,当声明引用类型的变量时,该变量会一直包含值 null,直至使用 new 运算符显式创建对象,或者为该变量分配已经在其他位置使用 new 创建的对象,如下所示: MyClass

额外说明

Camunda并行任务的处理

在工作流的编排中,有些时候会同时运行多个任务或子进程,默认的方式是串行运行,但是为了提高性能,我们会希望能并行运行。我也进行了一些测试,发现这个并行运行还不是这么简单的。 举个例子,我们现在定义一个流程,这个流程很简单,就是调用一个Http接口。然后再定

额外说明

[JAVA数据结构]堆排序

       前置内容:[JAVA数据结构]堆_HY_PIGIE的博客-CSDN博客         堆排序就是在堆的基础上,设置一个下标end在数组的最后一个元素上。不断的将堆顶元素与end所在的元素交换位置,交换完一次后end--,直到遍历完数组。

额外说明

Python学习笔记:序列之字符串

目录 一、Python中的序列 1、访问模式 2、序列相关操作 (1)标准类型运算符

ads via 小工具