容器中数据管理有两种方式:
数据卷: 容器内数据直接映射到本地主机环境
数据卷容器:使用特定容器维护数据卷
数据卷
数据卷可以提供很多有用的特性:
(1)数据卷可以在容器之间共享和重用,容器见传递数据将变得高校方便
(2)对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;
(3)对数据卷的更新不会影响镜像,解耦可应用和数据;
(4)卷会一直存在,直到没有容器使用,可以安全卸载它
1、在容器内创建一个数据卷
在docker run命令时,使用-v可以在容器内创建一个数据卷,多次重复使用-v可以创建多个数据卷
docker run -d -P --name web -v /webapp training/webapp python app.py
使用training/webapp创建一个web容器,并创建一个数据卷挂载到容器的/webapp目录
2、挂载一个主机目录作为数据卷(推荐)
docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
上面的命令加载主机的/src/webapp目录到容器的/opt/webapp目录
本地目录的路径必须是绝对路径,如果目录不存在,docker会自动创建
docker挂在数据卷的默认权限是读写(wr),用户也可以通过ro指定为只读
docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py
3、挂载一个本地主机文件作为数据卷(不推荐)
因为会改变文件的inode,会报错
数据卷容器
用户需要在多个容器之间共享一些持续更新的数据。数据卷容器也是一个容器,目的是专门用来提供数据卷共其他容器挂载
利用数据卷容器来迁移数据