volume概念
Docker 的镜像是由一系列的只读层组合而来,当启动一个容器的时候,Docker加载镜像的所有制度层,并在最上层加一个读写层。这个设计使得Docker可以提高镜像构建、存储和分发的效率,节省了时间和存储空间,然而也存在如下问题:
- 容器中的文件在宿主机上存在形式复杂,不能在宿主机上很方便的对容器中的文件进行访问
- 多个容器之间的数据无法共享
- 当删除容器时,容器产生的数据将会丢失
为了解决这些问题,Docker引入了数据卷(volume)机制。volume是存在一个或多个容器中的特定文件或文件夹,这个目录能独立于联合文件系统的形式在宿主机中存在,并为数据的共享与持久提供一下遍历。
- volume 在容器创建时就初始化,在容器运行时就可以使用其中的文件
- volume 能在不同的容器之间共享和重要
- volume 中的数据操作会马上生效
- volume 中的数据操作会影响到镜像本身
- volume 的生存周期独立于容器的生存周期,及时删除容器,volume仍然会存在,没有任何容器使用volume也不会被Docker删除
总的来说,volume的存在就是将容器和容器产生的数据进行分离,提供独立于容器之外的持久化存储
volume的创建
从容器中挂在volume
docker run -d --name nginx_volume -v /usr/share/nginx/html nginx
参数解析:
--name nginx_vlolume
指定容器的名称
-v /usr/share/nginx/html nginx
指定容器的挂载目录使用
docker inspect nginx_volume
命令查看容器配置,在输出的内容中找到以下内容:"Mounts": [ {