赞
踩
1.数据卷 Data Volumes 容器内数据直接映射到本地主机环境;
2.数据卷容器(Data Volume Containers 使用特定容器维护数据卷
数据卷是一个可供一个或多个容器使用的特殊目录(文件夹),但它是有局限性的,比如说把容器拷贝到其他电脑上是不会有数据的,因为数据都在数据卷里面,如果要有数据,还要在电脑上在创建一个数据卷重新输入数据(如果容器只在本机使用,建议使用数据卷)
数据卷是一个可供一个或多个容器使用的特殊目录(文件夹), 它将主机操作系统目录直接映射进容器
它可以提供很多有用的特性:
1.数据卷 可以在容器之间共享和重用
2.对数据卷的修改会立马生效
3.对数据卷的更新,不会影响镜像
4.数据卷 默认会一直存在,即使容器被删除
docker volume create my-vol
注1: my-vol是数据卷的名称
注2: 创建好的据卷默认会放到/var/lib/docker/volumes路径下,会发现所新建的数据卷位置,查看命令如下:
cd /var/lib/docker/volumes
效果图 :
docker volume ls
效果图:
docker volume inspect my-vol
效果图:
docker volume rm my-vol
效果图:
用 docker vloume ls 查询一下,如果没有数据卷了,就说明删除成功了
注1:rm是remove的缩写
注2:数据卷 是被设计用来持久化数据的,它的生命周期独立于容器,Docker不会在容器被删除后自动删除数据卷
并且也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷,无主的数据卷可能会占据很多空间, 所以要及时删除
挂载的意思是临时会挂载身上,可拆卸的
比如一个人(容器)背了一个包(数据卷)
如果容器要使用数据卷,必须在创建容器的时候挂载数据卷
docker run -itd\
--name tomcat01 \
--mount source=my-vol,target=/webapp \
centos:latest
注1:
\ 是换行的意思 (也可以不打 \ 但是代码会不美观)
docker run -itd --name tomcat01 --mount source=my-vol,target=/webapp centos:latest
run的意思是创建并且运行并且进入的到容器里面去
it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端
在-it 后面加了d是让容器后台运行的意思
-- name 是给容器取个名字叫 tomcat01
--mount source=my-vol 挂载命令 ,表示容器可以使用数据卷
target=/webapp是挂载容器的这个路径
centos:latest是即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否存在指定的镜像
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。 数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载
docker run -it -d --name db_data -v /db_data centos
注:通过 -v的指令来指定这个文件夹(db_data)叫数据卷
效果图:
通过 dockers ps 查询 数据卷容器 已经创建成功了
docker run -it -d --name db1 --volumes-from db_data centos docker exec -it db1 bash cd db_data
注:通过--volumes-from将db_data里面的数据卷挂载到当前容器
docker exec -it db_data /bin/bash
效果图:
在通过cd db_data进入到数据卷里面
效果图:
在通过cd db_data进入到数据卷里面
随后在容器db1里面创建一个abc.txt文件
使用 touch 来创建
效果图:
然后在到db_data里面查看发现也有了abc.txt
注:db_data这个数据卷容器不能随便关,如果关了,其他挂载了db_data里面数据卷的容器就会用不了
谢谢阅读
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。