1 数据卷简介
为了解决:
- 容器中的文件会随容器删除而删除
- 宿主机与容器之间不能相互访问文件
- 容器与容器之间不能相互访问文件
Docker引入了数据卷机制(volumes),
实现了 主机与容器 或 容器与容器 共享文件
2 数据卷的使用
在使用docker run 命令时添加 -v 参数,就可以创建并挂载一个到多个数据卷到当前运行的容器中
sudo docker run -dit --name [容器名字] -v [宿主机目录/文件]:[容器目录/文件] [镜像名称] [命令(可选)]
3 数据卷容器的使用
将宿主机的某个目录,使用容器的方式来表示,然后其他的应用容器将数据保存在这个容器中,达到大批量应用数据同时存储的目的
(1) 创建一个数据卷容器
注意:
- 容器数据卷目录要这样写/docker_data, 名称随便取, 不要加~, 这只是个虚拟目录名, 它不在宿主机上!!!
- 数据卷容器不启动
sudo docker create -v [容器数据卷目录] --name [容器名字] [镜像名称]
# 示例:
sudo docker create -v /docker_data --name vcontainer ubuntu:16.04
(2) 创建两个容器, 同时挂载数据卷容器
sudo docker run -dit --volumes-from [数据卷容器名] --name [容器名字] [镜像名称] [命令(可选)]
# 示例:
sudo docker run -dit --volumes-from vcontainer --name ccc1 ubuntu:16.04 /bin/bash
sudo docker run -dit --volumes-from vcontainer --name ccc2 ubuntu:16.04 /bin/bash
在ccc2容器中操作, 在ccc1容器中会同步数据
但在宿主机中操作, 在ccc1和ccc2容器中均不会同步
因为数据是保存在数据卷容器内,并没有保存到宿主机的文件目录中
4 数据操作指令
(1) 查看所有数据卷
sudo docker volume ls
(2) 查看数据卷详情
sudo docker volume inspect [VOLUME NAME]
进入该目录, 可以看到里面存的是什么数据