在生产环境中使用Docker,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束)或者需要在多个容器之间进行数据共享,需要将数据从宿主机挂载到容器中,这就会涉及容器的数据管理操作。 Docker数据卷(datavolume,注:位置在varlibdockervolumes)是容器可以访问,但是位置不在root文件系统中的一个目录。为了能让容器之间可以共享数据,Docker让“卷”(volume)可以绕过Docker镜像的层叠机制。容器中所有对镜像的改变全部都直接存储。每个容器都有固定的运行目录在varlibdocker目录下;而每个容器卷的数据则默认单独存储在varlibdockervolumes目录底下。dockerrun命令的v选项能够实现容器间数据卷中数据的互相拷贝。 数据卷Volume的基本使用: 1。管理卷 创建一个自定义容器卷 dockervolumecreatemyvol 查看所有容器卷 dockervolumels 查看指定容器卷详情信息 dockervolumeinspectmyvol 2。创建使用指定卷的容器 有了自定义容器卷,我们可以创建一个使用这个数据卷的容器,这里我们以nginx为例: dockerrunditnamemyvolp8800:80vedcnginxvol:usrsharenginxhtmlnginx 其中,v代表挂载数据卷,这里使用自定数据卷myvol,并且将数据卷挂载到usrsharenginxhtml(这个目录是yum安装nginx的默认网页目录)。 如果没有通过v指定,那么Docker会默认帮我们创建匿名数据卷进行映射和挂载。 3。删除一个卷 dockervolumermmyvol Docker不会在容器被删除后自动删除数据卷,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷,无主的数据卷可能会占据很多空间,所以要及时删除。