数据卷是一个可提供一个或者多个容器使用的特殊目录,绕过UFS,可以提供很多有用的特性:
1.数据卷可以在容器之间共享或重用
2.对数据卷的修改会立刻生效
3.对卷的更新不会影响镜像
4.卷会一直存在,知道没有容器可用
**数据卷的使用类似于Linux中对目录或者文件进行mount
创建一个数据卷:
在docker run中,使用命令-v标记来创建一个数据卷并挂载在容器里,在一次run中多次使用可以挂载多个数据卷。
sudo docker run -d -P --name -v /webapp training/webapp python app.py
使用-v也可以指定挂载一个本地主机目录到容器中:
sudo docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
此命令是加载主机的/src/webapp目录到容器的/opt/webapp,此功能在进行测试的时候非常方便,比如用户可以将一些应用程序放到主机中,用来检测容器是否正常工作。本地目录必须是绝对路径,如果目录不存在,docker会自动创建。
挂载一个本地主机的文件作为数据卷:
docker run --rm -it -v ~/.bash_history:/.bash_history ubantu /bin/bash
这样就可以记录在容器中使用过的命令
数据卷容器:
数据卷容器:一个正常的容器,专门用来提供数据卷供其他容器挂载的。
**如果你有一些持续更新的数据需要在容器之间共享,最好建立一个数据卷容器。
首先创建一个命名的数据卷容器----dbdata
docker run -d -v /dbdata training/postgres echo Data-only container for postgres