导航
导航
文章目录
  1. 一、创建数据卷容器
    1. 方法一(数据卷/dbdata)
    2. 方法二(容器不运行)
    3. 方法三(映射本地文件)
    4. 方法四(推荐)
  2. 二、挂载数据卷容器
  3. 三、备份数据卷中的内容
  4. 四、复制文件到数据卷
  5. 五、数据卷插件

Docker volume 数据卷

一、创建数据卷容器

方法一(数据卷/dbdata)

docker run -it -v /dbdata --name dbstore ubuntu /bin/bash

方法二(容器不运行)

docker create -v /dbdata --name dbstore ubuntu /bin/bash

方法三(映射本地文件)

docker run -it -v $(pwd):/dbdata --name dbstore ubuntu /bin/bash

方法四(推荐)

创建数据卷dbdata

docker volume create --name dbdata

创建数据卷容器

docker run -it -v dbdata:/dbdata --name dbstore ubuntu /bin/bash

删除

docker volume rm dbstore

查看

docker volume ls

二、挂载数据卷容器

将上面创建的dbstore容器挂载到新容器dbstore2上面

docker run -it --volumes-from dbstore --name dbstore2 ubuntu /bin/bash

注意: 删除容器不会删除数据卷,但是。。如果删除了数据卷容器后,要找到无主的数据卷就稍有点麻烦了。

通过下面命令找回数据卷

docker volume ls #列出全部数据卷
docker run -it -v xxxx:/dbdata --name dbstore ubuntu /bin/bash #创建数据卷容器

三、备份数据卷中的内容

备份数据卷容器dbstore中的数据卷/dbdata内容。

docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
  1. 启动一个临时容器,挂载dbstore容器的数据卷。
  2. 将当前目录挂载到这个临时容器的/backup目录
  3. 最后将dbstore容器中的数据卷/dbdata备份到/backup(即当前目录)

四、复制文件到数据卷

将宿主机的文件复制到数据卷(/dbdata)中

首先新建一个数据卷(数据卷在卷容器dbstore中)

$ docker run -itd -v /dbdata --name dbstore ubuntu /bin/bash

然后新建一个临时容器,挂载刚才创建的数据卷容器(dbstore)
接着将当前目录映射为这个临时容器的/backup目录
最后,将当前目录下的backup.tar解压到数据卷(/dbdata)中

$ docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu bash -c "cd /dbdata && tar xvf /backup/backup.tar --strip 1

五、数据卷插件

所有可用插件:https://docs.docker.com/engine/extend/plugins/

Flocker 插件安装

其他:略

参考文档:

支持一下
扫一扫,支持一下