• docker专题-数据管理



    序言

      使用Docker过程中,需要对数据进行持久化或在多容器之间、主机与容器之间需要进行数据共享,必然涉及到容器的数据管理。
      容器中数据管理方式有两种:
        数据卷Data Volumes:容器和本地主机间映射的特殊目录,绕过 UFS;
        数据卷容器Data Volumes Containers:使用特定的容器维护数据卷。
      数据卷特性:
        可以在容器之间共享和重用
        对数据卷的修改会立马生效
        对数据卷的更新不会影响镜像
        数据卷默认会一直存在,即使容器被删除。

    一、主机-容器数据交互图

    示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
      数据卷(Volumes):通过docker volume create -d local 数据卷名称 创建
      绑定数据卷 (Bind mounts):创建容器时将主机本地目录路径挂载到容器内做为数据 卷的形式称绑定数据卷。
      Tmpfs mount:临时数据卷,存在于内存中。

    二、数据卷容器Data Volumes Containers

    1.数据卷容器创建与数据共享

      创建数据卷容器dataContainer,同时创建本地数据卷(/tmp/localdataVol)挂载到/dataVol:

    	docker run -itd -v /tmp/localdataVol:/dataVol 
    		 	   --name dataContainer ubuntu
    
    • 1
    • 2

      1.验证本地本地数据卷(/tmp/localdataVol)和容器内/dataVol目录内数据的一致性:
      进入dataContainer容器编辑dataVol数据卷下文件内容:

    	docker exec -it dataContainer /bin/bash
        echo  ‘dataContainer-dataVol:dataVolumes context data...’ \
        	 > log.txt
    
    • 1
    • 2
    • 3

      退出容器查看本地数据卷数据是否同步更新:cat /tmp/localdataVol/log.txt
      2.验证新数据卷容器dataContainer2和原容器dataContainer间数据卷数据共享、同步:
      创建新数据卷容器dataContainer2,同时挂载容器dataContainer内所有数据卷:

    	docker run -itd --volumes-from dataContainer \ 
    		--name dataContainer2 ubuntu
    
    • 1
    • 2

      进入dataContainer2容器编辑/dataVol数据卷下文件内容:

    	docker exec -it dataContainer2 /bin/bash
    
    • 1

    2.数据卷容器数据迁移

      利用数据卷容器对数据卷进行数据的备份与恢复,实现数据的迁移。
    备份
      备份数据卷容器dataContainer 内的数据卷到本地${pwd}和容器worker 数据卷backup目录下:

    	docker run --itd --volumes-from dataContainer \
    		   -v ${pwd}:/backup --name worker ubuntu \
    	       tar cvf /backup/backup.tar /dataVol
    
    • 1
    • 2
    • 3

      运行容器worker 时,挂载数据卷容器dataContainer内所有数据卷;将本地当前目录挂载至容器worker目录/backup;数据卷容器dataContainer内数据卷/dataVol压缩为backup.tar文件,存储在数据卷容器worker数据卷/backup/下,且在本地${pwd}目录下同时映射。
    恢复
      1 创建带有空数据卷的数据卷容器worker

    	docker run --itd -v destDataVol --name worker ubuntu /bin/bash
    
    • 1

      2 将本地数据恢复至数据卷容器worker

    	docker run --volumes-from worker -v ${pwd}:/backup \
    		   tar xvf /backup/backup.tar
    
    • 1
    • 2

      本地/backup/backup.tar文件解压后同步至数据卷容器worker数据卷/backup内

  • 相关阅读:
    在Vue中使用Swiper轮播图、同时解决点击轮播图左右切换按钮不生效的问题、同时将轮播图抽离出为一个公共组件
    云原生之使用Docker部署Nas-Cab个人NAS平台
    Stable Diffusion WebUI中COMMANDLINE_ARGS参数配置说明
    【单片机】14-I2C通信之EEPROM
    多线程(复习)
    CSS篇十六——盒子模型之边框
    python f-字符串的句法形式化
    【2023华为杯B题】DFT类矩阵的整数分解逼近(思路及代码下载)
    XREAL Air 2 Pro发布,加入电致变色技术,拓展AR眼镜使用场景
    家用摄像头怎么选:实用性,功能性以及性价比是关键
  • 原文地址:https://blog.csdn.net/jun55xiu/article/details/126271270