Docker存储Volume使用

1.使用docker自定义data volume

在mysql官方镜像的Dockerfile中定义了以下volume
VOLUME /var/lib/mysql
所以如果不指定-v参数docker会自定一个volume
docker run -d --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
查看volume如下
docker volume ls
DRIVER              VOLUME NAME
local               efcfec6f13b6efc66be2f0f73b5895b7b2324937e993e375afd1018443ca5f5b
进一步查看详情
docker volume inspect efcfec6f13b6efc66be2f0f73b5895b7b2324937e993e375afd1018443ca5f5b
可以看到volume的情况:
[
    {
        "CreatedAt": "2018-06-08T01:14:48Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/efcfec6f13b6efc66be2f0f73b5895b7b2324937e993e375afd1018443ca5f5b/_data",
        "Name": "efcfec6f13b6efc66be2f0f73b5895b7b2324937e993e375afd1018443ca5f5b",
        "Options": null,
        "Scope": "local"
    }
]
由于不方便使用所以我们使用以下定义volume名称的方法来使用

2.创建自定义volume名称的容器

docker run -d --name mysql2 -v mysql:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
-v {指定的data volume的名称}:{容器内要挂载的路径(同Dockerfile中VOLUME定义的路径)}
查看volume如下
docker volume ls
DRIVER              VOLUME NAME
local               efcfec6f13b6efc66be2f0f73b5895b7b2324937e993e375afd1018443ca5f5b
local               mysql

3.进入mysql2容器增加数据

docker exec -it mysql2 /bin/bash
mysql -u root
create database test;
创建一个数据库;

4.让其它容器使用该volume

docker run -d --name mysql3 -v mysql:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

5.进入mysql3检查数据库是否存在
6.如果 Dockerfile中不使用VOLUME指令则-v的用法如下

-v {宿主机路径}:{docker容器中要挂载的路径}
此方法可以打通开发流程

猜你喜欢

转载自blog.csdn.net/doegoo/article/details/80618242