基本命令
1 | docker volume ls // 列出所有volume |
Data Volume
volume是docker数据持久化的一种方式,那么怎样使用volume呢?
Dockerfile使用
可以通过mysql官方的Dockerfile看到volume的使用方式
命令模式使用
启动一台mysql;
1 | docker run -d --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql |
查看volume:
1 | pengshiliang@pengshiliang-virtual-machine:~$ docker volume ls |
可以通过inspect命令查看volume的存储路径
删掉mysql container
发现volume仍然存在,也确认了docker可以通过volume持久化存储数据
还可以通过下面的实例来证实
为了避免环境影响,删掉刚才产生的volume,重新启动一台mysql
valume的名称太长了,加入一个-v参数,来给volume起个别名,然后启动mysql,并指定volume存放位置
1 | docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql |
进入当前container,并创建一个数据库
然后退出,把当前的mysql1容器删掉
检查volume
再去启动一台mysql2
1 | docker run -d -v mysql:/var/lib/mysql --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql |
进入到当前容器的mysql数据库查看详情
发现刚才创建的数据库还在,也证明了volume是持久化存储的方式
bind mouting
命令:
1 | docker -run -v /home/aaa:/root/aaa |
通过docker bind mouting将本地和服务器(容器)上的资源绑定,改变一方都对数据同步,从而达到直接修改本地资源,服务器上的资源自动更新
准备一个目录,创建index.html文件
可以发现,当前目录下的文件是和container内部的/usr/share/nginx/html文件是同步的