`

7、Docker容器的数据管理

 
阅读更多
一、Docker容器的数据卷
         docker的理念之一是将应用与其运行的环境进行打包,因此通常docker容器的生存周期与在容器中运行的程序的
生存周期是一致的,但对于数据的要求是持久化的。另外,docker容器之间也需要一个共享数据的渠道,故有了数据卷。
        1、什么是数据卷
                   a)数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或多个容器提供访问。
                   b)数据卷的设计的目的,在于数据的永久化,它完全独立与容器的生命周期,因此,docker不会在容器删除
            时删除其挂载的数据卷,也不会存在类似的垃圾收集机制,对容器引用的数据卷进行处理。
                   
                   数据卷:a)它是独立存在于docker宿主机中,与docker容器的生命周期是分离的;b)docker数据卷本
            质上是存在于docker宿主机中的文件系统;c)docker数据卷可以是文件也可以是目录;d)docker容器可以利用
            数据卷与宿主机进行数据共享;e)同一个目录或文件可以支持多个容器的访问。
                    数据卷的特点:a)数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷
            贝到新初始化的数据卷中。b)数据卷可以在容器之间共享和重用。c)可以对数据卷里的内容直接进行修改。
            d)数据卷的变化不会影响镜像的更新。e)卷会一直存在,即使挂载数据卷的容器已经被删除
           
                    ~/container_data指定宿主机中的目录:data指定容器中的目录
                    在容器中往data目录下添加文件,也是在宿主机中的container_data目录下添加文件。
                   
                    使用docker inspect 查看刚创建的容器,可以查看容器是否挂载了数据卷
                   
                docker run -it -v ~/datavolume:/data:ro --name=dvt2 ubuntu /bin/bash   :ro设置容器对数据卷只有只读权限

      2、数据卷的使用
                使用dockerfile构建包含数据卷的镜像
                    dockerfile指令:  volume ["/data"]
                    dockerfile中创建的数据卷是不能映射到系统中已存在的文件目录的。

                    #For Data Volume Test
                    FROM ubuntu:14.04
                    VOLUME ["/datavolume1","/datavolume2"]
                    CMD /bin/bash
                    如上创建的镜像创建了两个数据卷   docker build -t myrep01/dvt3 .
                    依据创建的镜像启动容器     docker run --name=dvt4 -it myrep01/dvt3
                    在容器中查看文件有datavolume1,datavolume2两个文件夹
                    退出容器,使用docker inspcet dvt4查看容器信息,可以看到数据卷在宿主机的位置
                   
                   
               
   
二、Docker的数据卷容器
                1、什么是数据卷容器
                        命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器称为数据卷容器
                       
                2、数据卷容器的使用
                      docker run --volumns-from [container name]   由创建容器时通过--volumns-from 指定

                     docker run -it --name dvt6 --volumes-from dvt5 ubuntu /bin/bash
                     docker run -it --name dvt7 --volumes-from dvt5 ubuntu /bin/bash
                     dvt5是挂载了数据卷的数据卷容器
                     dvt6和dvt7也会挂载dvt5中挂载的数据卷,docker rm dvt5,将dvt5删除,并不影响dvt6和dvt7的数据卷加载
                    
                     docker run -it --name dvt8 --volumes-from dvt7 ubuntu /bin/bash
                     docker rm -v dvt7
                     使用docker rm -v 表示将容器挂载的数据卷也同时删除,
                     docker start dvt8
                     docker attach dvt8
                     进入dvt8容器中,依然可以使用挂载的数据卷,这是因为,在docker中如果一个数据卷还在被容器使用,那么它就会一直
                     存在。

三、Docker数据卷的备份和还原
                    1、数据备份方法
                         a)docker run --volumes-from [container name]    -v $(pwd):/backup ubuntu  tar cvf /backup/backup.tar   [container data volume]
                       
                        执行以上命令后的结果:执行备份命令容器既挂载了一个需要备份的数据卷,同时也挂载了一个存放备份数据的数据卷;
                       
                        docker run --volume-from dvt5 -v ~/backup:/backup --name dvt10 ubuntu tar cvf /backup/dvt5.tar /datavolume1
                         --volume-from dvt5指定要备份数据卷容器
                         -v ~/backup  -v 指定宿主机中备份文件存放路径
                        :/backup 指定容器中备份文件存放路径
                         tar cvf /backup/dvt5.tar 执行备份命令,压缩文件
                        /datavolume1 需要备份的数据卷
                       
                       
                    2、数据还原方法
                            docker run --volumes-from [container name]    -v $(pwd):/backup ubuntu  tar cvf /backup/backup.tar   [container data volume]
                            与数据卷的备份是一样的
                   
分享到:
评论

相关推荐

    prometheus监控docker容器详细资料—超详细,超全面(带文档和相关软件包)

    在监控Docker容器时,Prometheus的主要优势包括其灵活性、强大的查询语言PromQL以及丰富的生态系统,如Alertmanager用于警报管理,Grafana用于可视化。以下是一些关键知识点: 1. **配置Prometheus Server**: - ...

    虚拟化与Docker容器技术.pdf

    Docker 容器技术的核心是 Docker 守护进程,它负责管理 Docker 容器的生命周期,包括创建、启动、停止和删除。 相比虚拟机技术,Docker 容器技术有以下优点: 1. 启动速度快:Docker 容器可以在数秒内启动,而...

    Docker容器技术-Docker-compose使用案例.pptx

    在Docker容器技术中,Docker Compose是一个重要的工具,用于管理多个容器的应用。通过Docker Compose,开发者可以定义和运行多容器的Docker应用程序。其核心是`docker-compose.yml`文件,这是一个YAML格式的配置文件...

    Docker容器技术-数据卷与数据持久化.pptx

    本文将详细介绍 Docker 容器技术中的数据卷和数据持久化概述、容器数据存放问题、数据卷的概念、容器中数据管理方式、容器数据卷的特征和数据卷最佳使用场景等内容。 一、容器数据存放问题 在 Docker 容器技术中,...

    Docker基础概念与架构 Docker安装与配置 Docker镜像管理 Docker容器生命周期管理 Docker网络基础

    Docker数据管理与持久化 Dockerfile进阶 Docker服务与健康检查 DockerCompose入门 DockerCompose网络与服务 Docker在CI/CD中的应用 Docker安全与最佳实践 Docker与Kubernetes集成 Docker企业级部署策略 Docker容器化...

    掌握Docker容器管理:优雅地停止和删除的艺术

    ### 掌握 Docker 容器管理:优雅地停止和删除的艺术 #### Docker 容器管理基础知识 Docker 是一种革命性的技术,它提供了一种全新的方式来打包、部署和运行应用程序。通过容器化,开发人员可以将应用程序及其依赖...

    Docker容器技术-数据卷的类型与区别.pptx

    Docker 容器技术中的数据卷类型和区别 Docker 容器技术中的数据卷是一种用于数据持久化和共享的机制。数据卷是 Docker 容器技术中的一种核心概念,它允许容器之间共享数据,并且可以将数据持久化到宿主机文件系统中...

    基于Docker容器的分布式爬虫的设计与实现.pdf

    Docker 容器技术是一种轻量级的虚拟化技术,能够快速地部署和管理应用程序。Docker 容器技术广泛应用于爬虫系统、云计算和大数据分析等领域。 知识点6:分布式爬虫系统的优点 分布式爬虫系统具有高效、可靠、灵活...

    浅析云计算中Docker容器的资源管理.pdf

    合理的存储管理策略有助于容器数据的备份、恢复和迁移。 在实际生产环境中,合理地管理容器资源能够有效提升资源利用率,减少资源浪费,并确保服务的高可用性和稳定性。Docker容器由于其轻量级、易于管理和快速部署...

    普通用户运行docker容器-nginx为例

    "普通用户运行docker容器-nginx为例" 本文档主要介绍了如何使用普通用户运行 Docker 容器,使用 Nginx 作为示例。整个过程可以分为四大部分:安装 Docker、创建普通用户和 Docker 组、准备 Nginx 镜像和配置文件、...

    Docker容器的数据卷:持久化存储的秘诀

    它们不仅提供了一种简单而有效的方式来存储和管理容器数据,而且还可以使得容器化应用更加灵活和可靠。通过掌握数据卷的使用方法,开发者能够构建更加健壮和可扩展的Docker化应用,同时确保数据的安全性和持久性。在...

    Docker容器技术-数据卷的创建与管理.pptx

    在Docker容器技术中,数据卷(Volume)是用于持久化容器内数据的重要工具,确保即使容器被删除,数据也能保留。本讲座主要探讨了如何创建和管理数据卷,包括命名卷的创建和挂载卷的创建。 一、命名卷的创建 1. ...

    虚拟化容器docker视频.zip

    01-docker容器的网络访问.mp4 02-docker容器的端口映射.mp4 03-docker的数据卷.mp4 04-手动制作docker镜像.mp4 05-自动构建docker镜像.mp4 docker-day3 01-从零开始编写kod项目dockerfile.mp4 02-dockerfile的指令...

    Docker容器技术入门概述.pdf

    3. 管理 Docker:可以使用 Docker 命令来管理 Docker 容器,例如使用 `docker ps` 命令来查看当前运行的容器。 Docker 架构: 1. Docker 客户端:Docker 客户端是用户与 Docker Server 之间的接口,用于发送命令和...

    docker部署mysql容器自启动并挂载数据卷.pdf

    Docker 部署 MySQL 容器自启动并挂载数据卷 Docker 是一个流行的容器化平台,提供了轻量级、可移植的解决方案来部署应用程序。 MySQL 是一个流行的开源关系数据库管理系统,广泛应用于各种应用程序中。本文将介绍...

    走进Docker 62课 基本概念和架构 技术原理 容器 镜像与仓库 部署应用

    Docker 容器的数据管理 Docker 容器的网络连接 Docker 技术原理 Docker 镜像与仓库(一) Docker客户端和守护进程 Docker容器的跨主机访问 Docker源码分析(一)Docker介绍 Docker的安装和部署 Docker镜像与仓库(二...

    Docker容器管理工具Flocker.zip

    Flocker 可轻松实现 Docker 容器及其数据的管理。这是一个数据卷管理器和多主机的 Docker 集群管理工具,你可以通过它来控制数据。可用来在 Docker 中运行你的数据库、查询和 K/V 存储,并在应用中轻松使用这些服务...

    从 Docker 容器看容器技术的发展: 一种系统文献综述的视角

    - **跨学科合作**:强调了跨学科研究的重要性,如将Docker容器技术与人工智能、大数据分析等领域结合的可能性。 #### 结论 本研究通过对大量相关文献的系统综述,不仅揭示了Docker容器技术的研究现状和发展趋势,...

    梓豪平台是一个docker 容器化管理平台 包括主机管理,手工制作镜像,镜像管理,ci/cd 构建和应用管理的paas平台

    梓豪平台是一个docker 容器化管理平台 包括主机管理,手工制作镜像,镜像管理,ci/cd 构建和应用管理的paas平台。主要功能(多租户管理、多主机管理、web shell功能、文件系统、应用管理、ci/cd 持续集成功能、...

    Docker容器安全性解决方案.pdf

    Docker 容器安全性解决方案 Docker 容器安全性解决方案是指为了确保 Docker 容器在应用中能够安全运行,避免可能出现的安全问题和风险,而采取的一系列安全机制和解决方案。该解决方案主要包括容器虚拟化安全、容器...

Global site tag (gtag.js) - Google Analytics