`

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]
                            与数据卷的备份是一样的
                   
分享到:
评论

相关推荐

    基于微服务和Docker容器技术的PaaS云平台架构设计.docx

    基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发、部署、运维管理、持续开发持续集成的流程。平台提供基础设施、中间件、数据服务、云服务器等资源,开发人员只需要开发...

    虚拟化容器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 62课 基本概念和架构 技术原理 容器 镜像与仓库 部署应用

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

    Docker容器管理工具Flocker.zip

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

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

    Docker容器技术

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

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

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

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

    云无关的方式启动Docker容器Clocker.zip

    Brooklyn接收来自于此应用、每台docker主机、每个docker容器以及每款安装了此应用的软件的传感数据,并能够在各种情况下做出调整。Brooklyn正是以此去管理跨Docker云的分布式应用的。 与特定云供应商提供的Docker...

    详解Docker 数据卷管理

    数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享。 数据卷呈现给Docker容器的形式就是一个目录,支持多个容器间共享,修改也不会影响镜像。使用Docker的数据卷,类似在系统中使用 mount ...

    第三章:Docker容器进阶--创建镜像、数据管理、网络、存储类型 (2)1

    第三章:Docker容器进阶--创建镜像、数据管理、网络一、Docker镜像创建方法--基于已有镜像、基于本地模板;二、Docker镜像创建方法--基于dock

    docker超详细基础教程

    3. Docker容器的创建和管理:Docker容器是Docker镜像的实例,可以通过Docker镜像创建多个容器,以运行多个应用程序或服务。在创建容器时,需要指定容器的名称、网络、端口等相关参数,以及挂载数据卷等特殊配置。...

    docker容器与宿主机的数据交互方式总结

    在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作。 方式一、Docker cp命令 docker cp :用于容器与主机之间的数据拷贝。 语法 # 容器内...

    Docker基础入门到实战.zip

    目录 Docker基础入门到实战 01.Docker基本概念和框架 02.Docker的安装和部署 03.Docker容器 04.Docker镜像与仓库(一) 05.Docker客户端和守护进程 ...08.Docker容器的数据管理 09.Docker容器的跨主机访问

    java学习;05.Docker容器数据卷.md

    同时,Java还提供了自动内存管理和异常处理机制,使开发人员能够更轻松地编写高质量的代码。 总之,Java是一种功能强大、易学易用、具有广泛应用和强大跨平台特性的编程语言。它的设计目标是提供一种高效的开发工具...

    Docker虚拟化轻量容器技术教程视频

    01.Docker基本概念和框架 02.Docker的安装和部署 03.Docker容器 04.Docker镜像与仓库(一) 05.Docker客户端和守护进程 06.Docker镜像与仓库(二) ...08.Docker容器的数据管理 09.Docker容器的跨主机访问

    Docker 数据卷,数据卷容器详细介绍

    有些时候,我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作。 容器中管理数据主要有两种方式: 数据卷 数据卷容器 ...

    详解Docker数据管理(数据卷&数据卷容器)

    生产环境中使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作。 容器中管理数据主要有两种方式: 1.数据卷(Data Volumes):容器内数据直接映射...

    2018年Docker容器调查白皮书

    虽然集装箱是核心技术,但该行业正在目睹全面建设容器平台作为容器重新定义数据中心堆栈。 想要的公司在整个企业中大规模运营,跨DevOps创建一个通用的运营模式遵守组织安全策略倾向于容器平台的安全性,管理,以及...

    docker从入门到进阶

    Docker简介 Docker基本概念和架构 Docker容器相关技术 Docker安装与配置 容器的基本操作 守护式容器 在容器中部署静态网站 Docker镜像与仓库 Docker客户端与守护进程 ...Docker容器的数据管理 Docker容器的跨主机连接

    Kitematic可视化Docker UI管理工具

    Kitematic是一个 Docker GUI 工具,它可以更快速、更简单的运行Docker容器. 通过 GUI 你可以非常容易的创建、运行和管理你的容器,不需要使用命令行或者是在 Docker CLI 和 GUI之间来回切换; 也可以方便的修改环境...

Global site tag (gtag.js) - Google Analytics