前言
在 Docker
中,volumes
相比 mounts
- 更容易备份或者迁移
Docker Cli
或者 Docker Api
管理 Volumes
- 跨平台的
- 安全的容器之间共享
Volumes
Volumes
驱动 可以远程存储或云提供,可以加密,可以添加其他功能
- 新的
Volumes
可以通过容器预先填充内容
Volumes
在 Mac
和Windows
主机上,有更高的性能。
命令操作
Volumes
操作
创建
1
| docker volume create redis-vol
|
查看
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-redis
和 redis-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
包含 Volumes
的 yml
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:
|
使用 Volumes
的 yml
创建 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/