转载请注明出处:http://blog.csdn.net/a464057216/article/details/73469094
后续此博客不再更新,欢迎大家搜索关注微信公众号“测开之美”,测试开发工程师技术修炼小站,持续学习持续进步。
容器内管理数据或容器间共享数据有两种方式:
- 数据卷
- 数据卷容器
数据卷
数据卷是一个有别于UnionFS(联合文件系统,Union File System)、可以供一个或多个容器使用的特定目录,用于数据持久化或数据共享。
- 数据卷在容器创建时初始化。如果容器内的镜像在挂载点包含数据,这些数据在卷初始化时会被拷贝到新卷中(但是挂载点是主机路径时不适用,挂载宿主机目录时,宿主机目录中的内容会覆盖原挂载点中的数据)。
- 数据卷可以在容器间共享和重用。
- 对数据卷的改动直接生效。
- 镜像更新不会包含数据卷的更新。
- 容器被删除后,其使用的数据卷仍然存在,即数据卷的生命周期与容器的生命周期无关,也不会有自动垃圾回收机制。
添加数据卷
使用docker create
和docker run
命令的-v
参数可以为容器添加数据卷,可以多次使用-v
参数挂载多个数据卷,比如:
# Written by: CSDN - Mars Loo的博客
$ docker run -d -P --name web -v /webapp training/webapp python app.py
324aff2f4b74482a5988157ee28c2f088ea3d688f1eb1063c3ea5e0d56d6a22b
在容器内部添加/webapp
的数据卷。在Dockerfile
中使用VOLUME
指令添加一个或多个数据卷。
访问数据卷
上面添加的/webapp
卷是容器内的文件系统,通过docker inspect <container-name>
可以查看其映射的宿主机文件系统位置:
# Written by: CSDN - Mars Loo的博客
$ docker inspect web
Source
表示宿主机位置,Destination
表示容器内的位置,"RW": true
表示数据卷是可读写的。
本机路径作为数据卷
# Written by: CSDN - Mars Loo的博客
$ docker run -d -P --name web -v /home/mars/webapp:/webapp training/webapp python app.py
ba6bf