Docker 存储数据

默认情况下运行容器执行完操作后,容器会立即退出处于停止状态,之前在容器中所操作的修改和储存的数据都会一并消失,

为了能存储数据,docker提供了数据卷和数据卷容器来解决这个问题。

数据卷:

数据卷是一个可供一个或多个容器使用的特殊目录,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除

在运行容器的时候,创建一个数据卷:

docker run --name="centos7vol" -itd -v /data  centos:latest​

 

进入容器后可以看到data目录已经挂载到容器中,那么容器映射的到本地的数据卷在哪里呢?

docker inspect CONTAINER ID​

 

通过执行上述命令后,可以查看”Mounts”段中的内容得知映射到本机的目录。

指定本机目录,映射到容器:

docker run --name="centos7test" -itd -v /data:/data centos:latest​

 

映射单个文件到容器中:

docker run --name="centos7lf" -itd  /path/to/filename.tar.gz:/filename.tar.gz centos:latest​

 

删除数据卷:

docker rm -v CONTAINER ID ​#删除容器同时删除数据卷

 

数据卷容器:

数据卷容器本质上也是一个容器,只不过数据卷容器提供数据卷供其它容器挂载使用。

创建一个数据卷容器:

docker run --name="datavolumes" -itd -v /data centos:latest​

 

创建容器使用数据卷容器:

docker run --name="centos7" -itd --volumes-from datavolumes centos:latest​

#数据卷容器并不需要一直运行,在创建数据卷容器的时候也可以将本机卷映射到数据卷容器。

posted @ 2018-01-07 11:06  erdancry  阅读(469)  评论(0编辑  收藏  举报