docker 数据卷
docker管理数据的方式有两种:
· 数据卷
· 数据卷容器
数据卷是为一个或多个容器专门指定绕过Union File System的目录,为持续性或共享数据提供一些有用的功能:
· 数据卷可以在容器间共享和重用
· 数据卷数据改变是直接修改的
· 数据卷数据改变不会被包括在容器中
· 数据卷是持续性的,直到没有容器使用它
数据卷的使用,类似于 Linux 下对目录进行 mount
挂载一个主机目录作为数据卷
你想在容器中使用主机上的某个目录,你可以通过-v参数来指定
以tomcat 为例 在主机tomcat 创建 一个目录root
docker run -p 8080:8080 --name tomcat -d -v /usr/local/tomcat/root:/usr/local/tomcat/root tomcat
: 左边 宿主机目录 右边容器的目录
mysql
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/logs:/var/mysql \
-v /usr/local/docker/mysql/data:/var/mysql \
-e MYSQL_ROOT_PASSWORD=123123 \
-d mysql
启动后将mysql 配置文件复制到宿主机
docker cp mysql:/etc/mysql .
得到配置文件后删除容器
清空 log 和 data
重新启动一个容器
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/mysql \
-v /usr/local/docker/mysql/data:/var/mysql \
-e MYSQL_ROOT_PASSWORD=123123 \
-d mysql
这就得到一个带有配置文件的mysql数据卷