用户在使用 Docker 的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作。容器中管理数据主要有两种方式:数据卷(Data Volumes),数据卷容器(Data Volume Containers)。
文件系统,可以提供很多有用的特性:
文件进行 mount 操作。
标记可以在容器内创建一个数据卷。多次使用 -v 标记可以创建多个数据卷。
标记也可以指定挂载一个本地的已有目录到容器中去作为数据卷:
功能在接下测试的时候特别方便,比如用户可以放置一些程序或数据到本地目录中,然后在容器中使用。另外,本地目录的路径必须是绝对路径,如果目录不存在,Docker 会自动创建。用户也可以通过 ro 标记指定为只读:
文件作为数据卷
标记也可以挂载一个主机中的文件到容器中作为数据卷,但是这样做会带来一些问题。建议还是挂载文件所在的目录。
用户需要在容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器其实就是一个普通的容器,专门用它提供数据卷供其他容器挂载。下面简单介绍其使用方法。
删除挂载了数据卷的容器时,数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时显式的使用 docker rm -v 命令来指定同时删除关联的容器。用户在容器之间自由的升级和移动数据卷,下面会进行详细的介绍。
内容备份为容器内的 /backup/backup.tar,即宿主主机的当前目录下的backup.tar。
文件到所挂载的容器卷中:
Box tar xvf /backup/backup.tar