Docker数据管理(数据卷与数据卷容器)

目录

一、数据卷(Data Volumes)

1、概述

2、原理

3、作用

4、示例:宿主机目录 /var/test 挂载同步到容器中的 /data1

二、数据卷容器(DataVolumes Containers)

1、概述

2、作用

3、示例:创建并使用数据卷容器


管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)数据卷容器(DataVolumes Containers)

在生成容器的同时,加上 -v 选项,指定把当前服务器的目录映射到容器中,实现docker持久化!

一、数据卷(Data Volumes)

1、概述

数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于 Linux 下对目录进行的 mount 操作。

2、原理

将容器内部的配置文件目录,挂载到宿主机指定目录下

数据卷默认会一直存在,即使容器被删除。

宿主机和容器是两个不同的名称空间,如果想进行连接需要用ssh,exec和attch也类似于ssh这种方式登录。

在企业中ssh这种登陆方式会比较危险,安全漏洞很大,尽量减少ssh这种,杜绝了频繁使用exec。

因此使用数据卷的方式把容器内部的文件目录挂载到宿主机指定目录下进行修改,当容器里的文件频繁需要修改时不需要登陆进去,直接使用数据卷方式在宿主机指定的目录下进行修改即可,方便又安全。

3、作用

Docker容器删除后,在容器中产生的数据也会随之销毁,所以使用数据卷避免这种情况。由Docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System(联合文件系统),提供一些用于持续存储或共享数据的特性。

4、示例:宿主机目录 /var/test 挂载同步到容器中的 /data1

注意:宿主机本地目录的路径必须是使用绝对路径。如果路径不存在,Docker会自动创建相应的路径。

把宿主机挂载到容器内部

docker run -it --name num01 -v /var/test:/data1 centos:7 bash

另开一个终端在宿主机进行查看

cd /var/test && ls

在容器中创建文件num01.txt

echo "this is num01 file" > /data1/num01.txt

在宿主机查看是否有内容

cat /var/test/num01.txt

二、数据卷容器(DataVolumes Containers)

1、概述

数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。

2、作用

让两个容器实现数据共享。

如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。

3、示例:创建并使用数据卷容器

创建一个容器 rong01 作为数据卷容器并创建文件 1.txt 与 2.txt

#创建并进入容器
docker run -it --name rong1 -v /data1 -v /data2 centos:7 bash	#容器内创建测试文件1、2
echo "this is 1 file" > /data1/1.txt		  	
echo "THIS IS 2 FILE" > /data2/2.txt					

使用 --volumes-from 挂载容器 rong02 中的数据卷到新的容器

#创建并进入容器
docker run -it --name rong2 --volumes-from rong1 centos:7 bash	#查看测试数据是否同步
cat data1/1.txt											
cat data2/2.txt

三、容器互联:--link

使用centos镜像,容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。

简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息。

示例:

1、创建并运行源容器取名web1
docker run -itd -P --name web1 centos:7 /bin/bash2、创建并运行接收容器取名web2
#使用--link选项指定连接容器以实现容器互联
docker run -itd -P --name web2 --link web1:web2 centos:7 /bin/bash3、进入web2容器验证
docker exec -it web2 bash
ping web1也可以直接取消后台-d 直接进入web2容器ping web1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/88061.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中线程的7大状态的基本介绍

在线程的生命周期中,有七种不同的状态,这些状态描述了线程在不同阶段的情况。Java中线程的七大状态如下: 新建(New): 当创建一个线程对象时,线程就处于新建状态。此时,线程已经被创建…

【Python小练习】利用DES进行加密解密

from Crypto.Cipher import DES from Crypto.Util.Padding import pad, unpad import json# 创建 DES 加密对象 key b123456 # 8字节的密钥,注意必须为字节类型 cipher DES.new(key, DES.MODE_ECB)# 加密 def encrypt_data(data):plaintext json.dumps(data).en…

[oneAPI] 基于BERT预训练模型的SWAG问答任务

[oneAPI] 基于BERT预训练模型的SWAG问答任务 基于Intel DevCloud for oneAPI下的Intel Optimization for PyTorch基于BERT预训练模型的SWAG问答任务数据集下载和描述数据集构建问答选择模型训练 结果参考资料 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d…

老Python程序员职业生涯感悟—写给正在迷茫的你

我来讲几个极其重要,但是大多数Python小白都在一直犯的思维错误吧!如果你能早点了解清楚这些,会改变你的一生的。所以这一期专门总结了大家问的最多的,关于学习Python相关的问题来给大家聊。希望能带给大家不一样的参考。或者能提…

Module not found: Error: Can‘t resolve ‘less-loader‘解决办法

前言: 主要是在自我提升方面,感觉自己做后端还是需要继续努力,争取炮筒前后端,作为一个全栈软阿金开发人员,所以还是需要努力下,找个方面,目前是计划学会Vue,这样后端有java和pytho…

CentOS 7 Nacos 设置开机自动重启

一、说明 Nacos如果是手动启动的话,在服务器宕机或者重启后,没有自动运行,影响很多业务系统,需要每次手动执行命令 startup.sh -m standalone,才能启动 Nacos 服务,不能像docker服务一样,使用 …

Mysql B+树索引

一、联合索引 内节点中存储的是 目录项 记录 ,叶子节点中存储的是 用户记录 (由于不是聚簇索引,所以用户记录是不完整的,缺少 country 列的 值)。这个 idx_name_birthday_phone_number 索引对应的 B 树中页面和记录的排…

服务器数据恢复-服务器RAID6硬盘故障离线的数据恢复案例

服务器数据恢复环境: 服务器中有一组由6块磁盘组建的RAID6磁盘阵列。服务器作为WEB服务器使用,上面运行了MYSQL数据库以及存放了网站代码和其他数据文件。 服务器故障: 在服务器运行过程中该raid6阵列中有两块磁盘先后离线,但是管…

Spring与MyBatis集成 AOP整合PageHelper插件

目录 1.什么是集成? 2.Spring与MyBatis集成 3.Spring与MyBatis集成的基本配置 4.AOP整合PageHelper插件 1.什么是集成? 集成是指将不同的组件、框架或系统整合到一起,使它们可以协同工作、相互调用、共享资源等。通过集成,可以…

乡村振兴战略下传统村落文化旅游设计书辉瑞

乡村振兴战略下传统村落文化旅游设计书辉瑞

07:STM32----ADC模数转化器

目录 1:简历 2:逐次逼近型ADC 3:ADC基本结构 4:输入通道 5:规则组的4种转换模式 1:单次转化,非扫描模式 2:连续转化,非扫描模式 3:单次转化,扫描模式 4:单次转化,扫描模式 6:触发控制 7:数据对齐 8:转化时间 9:校准 10:ADC的硬件电路 A: AD单通道 1:连接图 2:函…

ARDUINO STM32 SSD1306

STM32F103XX系列SPI接口位置 在ARUDINO 下,(不需要设置引脚功能,不需要开启时钟设置,ARDUINO已经帮我们处理了) stm32f103c6t6 flash不足,不足以运行U8G2,产生错误 改用U8X8,后将字体改为u8x8_…