docker随笔2--数据卷

1.背景:

容器是镜像的实例,是一个运行的应用,应用在运行过程中会产生数据,需要对容器内的数据进行操作。

2.容器管理数据的两种方式:

  数据卷

  数据卷容器。

3.数据卷:

3-1:什么是数据卷:

数据卷是一个特殊的目录:

  它可以在容器之间共用共享

  对数据卷的更新修改不会影响镜像

  数据卷的修改会立马生效

  生命周期长,直到没有容器使用。

3-2:创建数据卷:

  在使用docker run的时候,可以使用 -v 标记可以在容器内创建一个数据卷。 多次使用-v 会创建多个数据卷。

  在容器内创建一个数据卷:

docker pull hub.c.163.com/library/nginx  #使用一个新的 镜像(这个是我以前下的镜像)
docker tag hub.c.163.com/library/nginx test/nginx #使用对这个镜像打标签生成新的镜像。
使用新的镜像创建数据卷
docker run -v /home/lx/docker/dataVolume:/data -ti test/nginx /bin/bash #创建数据卷并进入容器

在宿主机的dataVolume文件夹,增加test.php

然后在容器中的data里进行查看,发现容器里面多了一个test.php文件。

指定文件夹和指定文件到容器,和上面的方法一样。

3-3:数据卷容器

如果用户需要容器之间共享一些持续更新的数据,最简单的方法是使用数据卷容器。

数据卷容器就是一个普通的容器,专门提供数据卷供其他容器挂载。

使用实例:

#1.创建一个新的镜像
docker tag hub.c.163.com/library/nginx  lx/dbdata
#创建数据卷(如果不想跟宿主机的文件夹进行关联也可以)
docker run -v /dbdata  --name dbdata  lx/dbdata

在其他容器里使用这个数据卷容器

docker run -ti  --volumes-from  dbdata  test/nginx  /bin/bash

使用数据卷容器,并进入查看/dbdata,在这两个容器里对数据进行修改,是同步改变的。

3-4:利用数据卷容器迁移数据

备份数据卷容器中的数据卷:

压缩导出:

docker run  --volumes-from dbdata -v   $(pwd):/backup  --name worker   test/nginx

tar -cvf /backup/backup.tar /dbdata

tar -cvf  文件名  目录  :压缩命令

恢复:

如果想恢复导出的备份数据,需要先创建一个数据卷容器,然后使用volumes-from 挂载这个容器。

原文地址:https://www.cnblogs.com/callmelx/p/11025393.html