[docker]$3_存储管理

Docker存储管理

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

  • bind mounts, 绑定挂载,可以将主机上的文件或目录挂载到容器中

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

volumes

#匿名卷
$ docker volume create
$ docker volume ls


$ docker volume create volume1


用卷启动一个容器

$ docker container run \
    -it \
    --name shiyanlou001 \
    -v volume1:/volume1 \
    --rm ubuntu /bin/bash

$ docker container run \
    -it --name shiyanlou002 \
    --mount type=volume,src=volume1,target=/volume1 \
    --rm ubuntu /bin/bash

bind-mounts

$ docker container run \
    -it \
    -v /home/shiyanlou:/home/shiyanlou \
    --name shiyanlou003 \
    --rm ubuntu /bin/bash


$ docker container run \
    -it \
    --mount type=bind,src=/home/shiyanlou,target=/home/shiyanlou \
    --name shiyanlou004 \
    --rm ubuntu /bin/bash

tmpfs

只存储在主机的内存中。

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

数据卷容器

创建数据卷容器

# 创建一个名为 vdata 的数据卷
$ docker volume create vdata

# 创建一个挂载了 vdata 的容器,这个容器就是数据卷容器
$ docker container run \
    -it \
    -v vdata:/vdata 
    --name ShiyanlouVolume ubuntu /bin/bash

# 在 /vdata 目录下创建一个文本文件
$ echo "I am ShiyanlouVolume" > /vdata/f.txt

# 创建容器 test1
$ docker container run \
    -it \
    --volumes-from ShiyanlouVolume \
    --name test1 ubuntu /bin/bash

# 查看 vdata 目录是否存在
$ ls -dl /vdata/

# 创建一个文件,并写入内容
$ echo "I am test1" > /vdata/test1.txt


# 创建容器 test2
$ docker container run \
    -it \
    --volumes-from ShiyanlouVolume \
    --name test2 ubuntu /bin/bash

# 查看 vdata 目录是否存在
$ ls -dl /vdata/

# 创建一个文件,并写入内容
$ echo "I am test2" > /vdata/test2.txt


# 查看数据卷中的内容
$ ls -al /vdata/

数据备份

$ docker container run \
   --volumes-from ShiyanlouVolume \
   -v /home/shiyanlou/backup:/backup \
   ubuntu tar cvf /backup/backup.tar /vdata/

数据恢复

$ docker container run \
   --volumes-from ShiyanlouVolume \
   -v /home/shiyanlou/backup:/backup \
   ubuntu tar xvf /backup/backup.tar -C /
发布了78 篇原创文章 · 获赞 0 · 访问量 1432

猜你喜欢

转载自blog.csdn.net/qq_30782921/article/details/101635485