Docker 存储数据

Posted ownlate

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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?

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

以上是关于Docker 存储数据的主要内容,如果未能解决你的问题,请参考以下文章

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

如何将 r ggplot 图存储为 html 代码片段

sql 这些代码片段将演示如何逐步使用PolyBase。你应该有一个blob存储和存储秘密方便

markdown docker-compose片段

sh Docker片段

如何在两个不同的片段中使用存储库数据