▪ 内容介绍 ▪
今天发布的内容主要有数据卷的创建方式,数据卷的操作命令以及数据卷的介绍,关于其他的Docker知识可以去 一言的博客主页 查看🧡
🔑目录🔑
1 Docker 数据管理
容器管理数据以及交互主要有两种方式:
数据卷 Data Volumes 容器内数据直接映射到本地主机环境
数据卷容器(Data Volume Containers 使用特定容器维护数据卷 此方法便于拷贝
2 数据卷(Data Volumes)
2.1 数据卷介绍
数据卷是一个可供一个或多个容器使用的特殊目录
它将主机操作系统目录直接映射进容器它可以提供很多有用的特性:
1.数据卷 可以在容器之间共享和重用
2.对数据卷的修改会立马生效
3.对数据卷的更新,不会影响镜像
4.数据卷 默认会一直存在,即使容器被删除
2.2 数据卷创建
2.2.1 宿主机上先创建数据卷,再启动容器
$ docker volume create myvol
注:“myvol”是此数据卷的名字,此时数据卷默认会放到/var/lib/docker/volumes路径下
2.2.2 挂载数据卷,最好是通过run而非create/start创建启动容器
$ docker run -itd --name voltest01 --mount source=myvol,taget=/webapp centos:latest
注:“--mount source=myvol”这句命令中的“myvol”就是挂载你创建的数据卷,“taget=/webapp”就是在容器的的哪个目录,如果目录不存在,Docker将会自动创建
此时在myvol数据卷下的_data目录下,创建的文件,在容器voltest01中的webapp目录下是可以看到的,但是这种方式的数据卷不便于拷贝,备份
所以请看下面的数据卷容器
3 数据卷容器
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器
数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载
3.1 新建数据卷容器
$ docker run -itd --name db_data -v /db_data centos
注:“-v /db_data”是使用-v来创建一个叫db_data的文件夹来做数据卷
3.2 测试数据卷容器
$ docker run -itd --name db1 --volumes-from db_data centos:latest
注:创建一个叫做db1的容器,将db_data这个数据卷容器挂载
- 进入db1这个容器
- $ docker exec -it db1 /bin/bas
- 进入db_data目录
- $ cd db_data
- 使用echo创建一个文件
- $ echo "db1 beifen test" > db1_test.txt
可以看到db_data这个容器下的db_data目录跟db1容器的db_data目录是可以共享数据的
4 数据卷的相关命令
- 查看所有的数据卷
- docker volume ls
- 查看指定数据卷的详细信息(显示一个JSON格式的数据)
- docker volume inspect myvol
- 删除一个数据卷
- docker volume rm myvol
- 新建数据卷
- docker volume create myvol
总结:数据卷就是一个特殊的目录,但是相比普通数据卷,数据卷容器是比较便于备份以及拷贝的