云计算-9-Dokcer容器的数据管理

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 数据卷是可以供一个或者多个容器使用的特殊目录,它绕过UFS(UNIX文件系统),数据卷的设计目的,在于数据的持久化存储,它完全独立于容器的生命周期,所以在删除docker容器的时候不会删除其挂载的数据卷,也不存在类似垃圾收集机制,对容器挂载的数据卷进行处理

云计算-9-Dokcer容器的数据管理

什么是数据卷



数据卷是可以供一个或者多个容器使用的特殊目录,它绕过UFS(UNIX文件系统),数据卷的设计目的,在于数据的持久化存储,它完全独立于容器的生命周期,所以在删除docker容器的时候不会删除其挂载的数据卷,也不存在类似垃圾收集机制,对容器挂载的数据卷进行处理。


数据卷有以下特点:


数据卷在容器启动的时候进行初始化,如果容器使用的进行在挂载点包含数据,那么数据也会拷贝到初始化的数据卷中


数据卷可以在容器之间进行共享或者重用


可以对数据卷里面的内容直接进行修改


数据卷的变化不会影响镜像的更新


数据卷会一直存在,哪怕是挂载数据卷的容器被删除


容器的数据卷

为容器添加数据卷

  • -v 宿主机绝对路径:Docker容器内部绝对路径:叫挂载



我们还以centos为例:创建一个名为mycentos的容器,并且加载一个数据卷l在宿主机上的/centos/mydata,同步容器/data 目录下数据

docker run -v /centos/mydata:/data -it centos


此时已经进入容器,然后进入到/data目录

cd /data


此时该路径下不存在任何数据,我们在该目录下创建一个text.txt文件

touch text.txt


然后我们在宿主机的查看/centos/mydata下文件也存在text.txt

因为数据卷是独立存在的,所以此时我们删除容器,数据卷还会存在

docker rm -f  $(docker ps -qa) # 删除所有容器


  • -v 不以/开头的路径:Docker容器内部绝对路径:叫绑定
docker run -v  mydata:/data -it centos


其他步骤和上面一致,然后我们使用docker inspect 容器名查看容器的信息

docker inspect youthful_swanson


a407500d6ffeff756b02f19ec3276f01.png


发现在启动容器的时候自动创建了一个volume

创建一个数据卷

docker volume create mycentos


查看所有 数据卷

docker volume ls


8202980e21ae3ddd8f03dda968a179ad.png


docker volume inspect mycentos:查询卷详情
docker volume mycentos: 移除无用卷

为数据卷添加访问权限

docker run -v /centos/mydata:/data:ro -it centos


:ro给容器内部添加只读权限,这样docker容器内的目录下就不能创建文件,只能在宿主机的/centos/mydata下创建文件。

使用Dockerfile构建包含数据卷的镜像


指令格式:

volume["/test"]


dockerfile文件如下

FROM nexus.gree.com/centos
VOLUME ["/mycentos1","/mycentos2"]
CMD /bin/bash


构建镜像

docker build -t  mycentos:v1  .


启动镜像,并进入容器

docker run --name mycentos2 -it mycentos:v1



查看容器目录,发现容器下有两个目录,/mycentos1和/mycentos2

Docker的数据卷容器


什么是数据卷容器

一个容器挂在数据卷,然后其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器叫做数据卷容器



挂载数据卷容器的方法

docker run --volumes-from [容器名]


举例说明:

docker run --name mycentos3 -it mycentos:v1  #(mycentos镜像是之前上面的dockerfile创建的)



mycentos:v1镜像存在两个数据卷mycentos1和mycentos2

进入容器后创建一个文件在数据卷mycentos1创建testcentos.txt

touch /mycentos1/testcentos.txt


创建一个新的容器,挂载刚才mycentos3这个容器创建的数据卷

docker run --name mycentos4  --volumes-from mycentos3  -it mycentos:v1


然后查看mycentos4容器的mycentos1数据卷下也存在testcentos.txt。

docker cp指令

Docker cp指令有两种格式

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- :把容器里面的复制出来
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH:把外部的复制进去


OPTIONS说明:

  • **-L 😗*保持源目标中的链接

举例说明

  • 将/mydata/test目录拷贝到8899992容器的/mydata目录下
docker cp /mydata/test 8899992:/mydata


  • 将容器8899992的/mydata目录拷贝到主机/mydata目录下
docker cp  8899992:/mydata /mydata/


相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
目录
相关文章
|
6月前
|
Serverless 数据处理 云计算
|
存储 数据管理 数据安全/隐私保护
《Docker数据管理:卷、挂载和持久化,保障容器环境数据安全》
《Docker数据管理:卷、挂载和持久化,保障容器环境数据安全》
356 0
|
19天前
|
存储 应用服务中间件 云计算
深入解析:云计算中的容器化技术——Docker实战指南
【10月更文挑战第14天】深入解析:云计算中的容器化技术——Docker实战指南
46 1
|
27天前
|
云计算 开发者 Docker
揭秘云计算中的容器化技术——Docker的深度解析
【10月更文挑战第6天】揭秘云计算中的容器化技术——Docker的深度解析
|
3月前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
61 0
|
3月前
|
Kubernetes Cloud Native 网络安全
云原生入门指南:Kubernetes和容器化技术云计算与网络安全:技术融合的新篇章
【8月更文挑战第30天】在云计算的浪潮中,云原生技术如Kubernetes已成为现代软件部署的核心。本文将引导读者理解云原生的基本概念,探索Kubernetes如何管理容器化应用,并展示如何通过实践加深理解。
|
4月前
|
缓存 测试技术 Linux
【好用的个人工具】部署Dokcer容器速查表工具
【7月更文挑战第13天】部署Dokcer容器速查表工具
33 1
|
5月前
|
运维 Kubernetes 云计算
云计算时代的运维革新:容器化与微服务架构的融合之道
在云计算技术飞速发展的当下,企业IT运维面临前所未有的挑战与机遇。传统的运维模式已难以满足现代业务对敏捷性、可伸缩性和自动化的需求。本文深入探讨了容器化技术和微服务架构如何共同推动运维领域的革命,通过数据支持和科学分析,揭示了这一融合趋势如何提高运维效率、降低风险并促进创新。
|
6月前
|
监控 Java 云计算
Java的云计算与容器化技术
Java的云计算与容器化技术
|
6月前
|
安全 Devops 虚拟化
【专栏】虚拟化技术与云计算平台 OpenStack:硬件虚拟化、操作系统级虚拟化和容器化
【4月更文挑战第28天】本文探讨虚拟化技术原理,如硬件虚拟化、操作系统级虚拟化和容器化,以及开源云计算平台OpenStack如何利用这些技术提供优势。OpenStack支持多种虚拟化技术,具备开源灵活性、多租户架构、可扩展性、插件式设计和成本效益。未来,OpenStack将在容器化、DevOps、跨云策略和安全合规性方面发挥更大作用,助力企业数字化转型。
606 4