Docker管理Volume

前言

Docker 中,volumes 相比 mounts

  1. 更容易备份或者迁移
  2. Docker Cli 或者 Docker Api 管理 Volumes
  3. 跨平台的
  4. 安全的容器之间共享 Volumes
  5. Volumes驱动 可以远程存储或云提供,可以加密,可以添加其他功能
  6. 新的 Volumes 可以通过容器预先填充内容
  7. VolumesMacWindows主机上,有更高的性能。

命令操作

Volumes操作

创建

1
docker volume create redis-vol

查看

1
docker volume ls

Inspect

1
docker volume inspect redis-vol

检查结果

1
2
3
4
5
6
7
8
9
10
11
[
{
"CreatedAt": "2021-08-02T07:33:01Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/redis-vol/_data",
"Name": "redis-vol",
"Options": {},
"Scope": "local"
}
]

删除

1
docker volume rm redis-vol

挂载

下面两种方式结果相同,但只能同时运行一个,除非删除 some-redisredis-vol

-v方式挂载

1
docker run --name some-redis -v redis-vol:/data -p 6379:6379 -d redis redis-server --appendonly yes  

--mount方式挂载

1
docker run --name some-redis --mount source=redis-vol,target=/data   -p 6379:6379 -d redis redis-server --appendonly yes  

检查是够挂载

1
docker inspect some-redis

删除容器删除Volumes

1
2
3
docker container stop some-redis
docker container rm some-redis
docker volume rm redis-vol

配置docker-compose.yml

包含 Volumesyml

1
2
3
4
5
6
7
8
9
10
version: "3.9"
services:
redis1:
image: redis:latest
volumes:
- redis2-vol:/data
ports:
- "6379:6379"
volumes:
redis2-vol:

使用 Volumesyml

创建 volumes

1
docker volume create redis3-vol

使用 volumes

1
2
3
4
5
6
7
8
9
10
11
version: "3.9"
services:
redis1:
image: redis:latest
volumes:
- redis3-vol:/data
ports:
- "6379:6379"
volumes:
redis3-vol:
external: true

更多参考 docks.docker

本文地址: https://github.com/maxzhao-it/blog/post/12280/