美文网首页Docker
Docker数据管理

Docker数据管理

作者: 王勇1024 | 来源:发表于2019-05-06 20:21 被阅读0次

数据卷

数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount操作。
数据卷可以提供很多有用的特性,如下所示:

  • 数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便;
  • 对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;
  • 对数据卷的更新不会影响到镜像,解耦了应用和数据;
  • 卷会一直存在,直到没有容器使用它,可以安全地卸载它。
  1. 在容器内创建一个数据卷
    可以通过docker run命令的-v参数在容器内创建一个或多个数据卷,下面使用 training/webapp 镜像创建一个web容器,并创建一个数据卷挂载到容器的 /webapp 目录:
docker run -d -v /webapp training/webapp python app.py
  1. 挂载一个主机目录作为数据卷
    使用-v也可以指定挂载一个本地的已有目录到容器中去作为数据卷(推荐方式)。
docker run -d -v /src/webapp:/opt/webapp \
training/webapp python app.py

注意:本地目录必须是绝对路径,如果目录不存在,Docker会自动创建。
Docker挂载的数据卷的默认权限是读写(rw),用于也可以通过ro指定为只读:

docker run -d -v /src/webapp:/opt/webapp \
training/webapp:ro python app.py
  1. 挂载一个本地主机文件作为数据卷
    -v也可以从主机挂载单个文件到容器中作为数据卷(不推荐)。
docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu bash

这样就可以记录在容器输入过的命令历史了。

数据卷容器

如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但它的目的是专门用来提供数据卷供其他容器挂载。
首先,创建一个数据卷容器dbdata,并在其中创建一个数据挂载到/dbdata:

docker run -it -v /dbdata --name dbdata ubuntu

然后,可以在其它容器中使用--volumes-from来关注dbdata容器中的数据卷:

docker run -it --volumes-from dbdata --name db1 ubuntu
docker run -it --volumes-from dbdata --name db2 ubuntu

注意:使用 --volumes-from 参数所挂载数据卷的容器自身并不需要保持在运行状态
如果删除了挂载的容器(包含dbdata、db1和db2),数据卷并不会被自动删除。如果想要删除一个数据卷,必须在删除最后一个还挂载着它的容器时显式使用docker rm -v命令来指定同时删除关联的容器。

利用数据卷容器来迁移数据

可以利用数据卷容器对其中的数据卷进行备份、恢复,以实现数据的迁移。

  1. 备份
    使用下面的命令来备份dbdata数据卷容器内的数据:
docker run --volumes-from dbdata -v ${pwd}:/backup --name \
worker ubuntu tar cvf /backup/backup.tar /dbdata
  1. 恢复
docker run  --volumes-from dbdata -v ${pwd}:/backup ubuntu \
tar xvf /backup/backup.tar

相关文章

  • 39-docker(一)

    本章内容 ◆ Docker简介◆ Docker 镜像与制作◆ Docker 数据管理◆ Docker 网络◆ Do...

  • docker(三)docker镜像文件

    数据管理前提1>docker容器不应该负责持久化2>业界使用docker,等价于使用服务3>官方使用docker,...

  • docker 镜像与容器

    Docker中通过模板创建镜像,Docker容器、仓库及数据管理[https://blog.51cto.com/f...

  • Docker的那些事儿—Docker数据管理(28)

    从本节开启Docker存储部分,学习docker是如何对数据管理的。 上一篇:Docker的那些事儿—容器与外部网...

  • Docker学习五、docker容器数据卷

    前言、Docker中的数据管理 Docker镜像是由多个只读层叠加而成,启动容器时,Docker会加载只读层并会在...

  • Docker基本命令

    镜像操作相关命令 容器操作相关命令 访问Docker仓库 Docker数据管理 端口映射与容器互联 Dockerf...

  • Docker 入门教程之数据管理

    Docker 数据管理的方式 Docker 对于容器数据的存储推荐挂载到宿主机,以此减轻容器的大小,也方便数据和容...

  • Docker数据管理

    容器管理数据方式: 数据卷:容器内数据直接映射到本地主机环境; 数据卷容器:使用特定容器维护数据卷。 数据卷 类似...

  • docker数据管理

    容器添加数据卷 数据卷添加权限 ro-read-only 只读rw-read-write 写读 dockerfil...

  • Docker 数据管理

    容器中管理数据主要有两种方式: 数据卷(Data Volumes) 数据卷容器(Data Volume Conta...

网友评论

    本文标题:Docker数据管理

    本文链接:https://www.haomeiwen.com/subject/qhtjoqtx.html