数据卷
数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount操作。
-
特性
- 数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便;
- 对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作;
- 对数据卷的更新不会影响镜像,解耦了应用和数据;
- 卷会一直存在,直到没有容器使用,可以安全地卸载它。
挂载主机目录作为数据卷
docker run -it --name mount1 -v /webapp:/opt/webapp ubuntu
将docker容器中的/opt/webapp
目录挂载到主机的/webapp
目录,在容器中/opt/webapp
目录创建一个文件,退出容器之后,可以在主机/webapp
目录下看得到
数据卷容器
数据卷容器也是一个容器,但是它的目的是专门用来提供数据卷供其他容器挂载。
- 步骤:
- 先创建一个数据卷容器
docker run -it -v /dbdata --name dbdata ubuntu
- 创建两个容器,使用这个数据卷容器
docker run -it -volume-from dbdata --name db1 ubuntu
docker run -it -volume-from dbdata --name db2 ubuntu
- 在dbdata中创建一个文件
cd /dbdata && touch test.log
- 在db1和db2中可以看到这个文件
cd /dbdata && ls -al
- 先创建一个数据卷容器