Docker——docker管理数据

docker管理数据

docker 提供三种不同方式,将数据从docker主机挂载到容器中

  • (1)卷(volumes),volumes 卷存储在Docker管理的主机文件系统的一部分中 (/var/lib/docker/volumes)中,完全由docker管理(推荐)

  • (2)bind mount 绑定挂载,可以将主机上的文件或目录挂载到容器中。

  • (3)tmpfs 仅存储在主机系统的内存中,而不会写入主机的文件系统

1,数据卷容器 volumes

  • docker volume

    	ls					列出本地可用数据卷
    	
    	create volume名		创建一个数据卷,若不指定名称,则随机生成一个名称
    
(1)创建卷
  • docker volume create volume名
(2)挂载卷
  • Ps: --mount

    • 由多个键值对组成,键值对之间由逗号分隔。例如:type=volume,source=volume1,destination=/volume1,ro=true。
      • type,指定类型,可以指定为 bind,volume,tmpfs。
      • source,当类型为 volume 时,指定卷名称,匿名卷时省略该字段。当类型为 bind,指定路径。可以使用缩写 src。
      • destination,挂载到容器中的路径。可以使用缩写 dst 或 target。
      • ro 为配置项,多个配置项直接由逗号分隔一般使用 true 或 false。

———————————————————————————————————

  • (1

    docker container run \
    	-it \								-it	交互模式
     --name shiyanlou001 \					自命名容器
    	-v volume1:/volume1 \				指定卷volume	将名volume1的卷挂载到,容器的 /volume1中
     --rm ubuntu /bin/bash					运行bash,退出后自动删除容器
    
  • (2

    docker container run \			
    -it --name shiyanlou002 \
    --mount type=volume,src=volume1,target=/volume1 \	type:挂载类型 	src:源数据卷	target:挂载目录	
    --rm ubuntu /bin/bash
    
  • (3
    不同容器可以继承同个volume,使用参数

    run 参数:
    --volumes-from volume名		继承volume卷
    

———————————————————————————————————

2,绑定挂载

  • 若目录不存在,则会自动创建该目录

  • (1 volume

    docker container run \
     -it \
     -v /home/shiyanlou:/home/shiyanlou \  		-v	主机目录地址:容器目录地址
    --name shiyanlou003 \
    --rm ubuntu /bin/bash
    
  • (2 --mount

    docker container run \
    -it \
    --mount type=bind,src=/home/shiyanlou,target=/home/shiyanlou \		type:挂载类型	src:源目录  target:目标目录
    --name shiyanlou004 \
    --rm ubuntu /bin/bash
    

3,临时文件系统tmpfs

  • 只主机的内存中,当内存停止时,相应的数据就回被移除

    docker run \
     -it \
    --mount type=tmpfs,target=/test \
    --name shiyanlou008 \
    --rm ubuntu bash
    

4,数据备份

docker container run \
--volumes-from ShiyanlouVolume \
-v /home/shiyanlou/backup:/backup \				挂载目录到容器中
ubuntu tar cvf /backup/backup.tar /vdata/		打包数据,到挂载目录中

5,数据恢复

docker container run \
--volumes-from ShiyanlouVolume \
-v /home/shiyanlou/backup:/backup \
ubuntu tar xvf /backup/backup.tar -C /

与数据备份道理一致
上一篇:用 Python 获取股市交易数据


下一篇:Docker容器数据卷-Volume小结