Docker的数据管理volumes
一、Docker的数据管理简单介绍
在生产环境中使用Docker,往往需要对数据进行持久化,或者说需要在多个容器之间进行数据共享,像我们在登录注册的是时候,如果我们在其中一个容器中进行注册,那必然我们需要能在其他容器中进行登录,如果没有实现数据共享,那么造成的结果就是说在别的容器中无法登录,这就违背了我们使用Dcoker的初衷了,所以使用docker必然涉要涉及容器的数据管理操作。
二、Dcoker容器中管理数据主要有两种方式
1、数据卷Data Volumes
简单介绍
容器内数据直接映射到本地主句环境,是一个可供一个或者霍格容器使用的特殊目录,它是将主机的操作系统目录直接映射进容器
使用命令
1)、需要先在宿主主机上先创建数据卷,再启动容器
docker volume create my-vol
执行玩此操作之后,数据卷默认会放到/var/lib/dokcer/volumes路径下,会发现所新建的数据卷的位置
2)、查看所数据卷
docker volumes ls
3)、查看指定数据卷的详细信息(是一个JSON格式的数据)
docker volum inspect my-vol
4)、删除一个volume
docker colume rm my-vol
5)、启动一个挂载数据卷的容器
1、已创建数据卷
docker run -d \
-it \
--name tomcat01 \
--mount source=my-vol,target=/webapp \
centos:latest
使用这个的前提就是已经创建了一个数据卷即可
这样创建的tomcat01容器就是一个可以使用数据卷的容器了,所以宿主本机,tomcat01操作这个数据卷在里面对数据的操作的时候对方都能即使接收到数据得到改变
2、没有创建数据卷,但需要创建一个目录
docker run -d \
-it \
--name tomcat02 \
--mount type=bind,source=/webapp01,target=/opt/webapp \
centos:latest
这个能得到的效果和上面是一样的,都能即使的感知到文件里面数据的改变
注:linux命令结尾加斜杠有什么用
加了“\”意为将最后的回车换行给注释了,系统理解为命令还没有结束,因而是继续等待用户进行输入,直到读到结束符,如回车
2、数据卷容器 Data Volumes Containers:使用特定的容器维护数据卷
简单介绍
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载,其实差不多可以理解为就是一个专门存放数据卷的容器
命令操作
1)、新建一个数据卷容器
docker run -it -d --name db_data -v /db_data centos
2)、测试这个新建的数据卷是否可用
docker exec -it db1 bash
能进去即可用,容器的根目录下面会多一个文件夹db_data,
3)、创建一个以数据卷容器为数据卷的容器
docker run -it -d --name db1 centos
在里面创建数据,如创建文件夹等操作在数据卷容器中是可以感知到的
注:以上的测试可以多创建几个容器来自己测试这个效果
三、数据卷以及数据卷容器的特性
1.数据卷 可以在容器之间共享和重用
2.对数据卷的修改会立马生效
3.对数据卷的更新,不会影响镜像
4.数据卷 默认会一直存在,即使容器被删除