🗃️ 什么是「卷」?(Volume)
「卷」就是 Docker 里用来“保存数据”的一块空间,就像是一个外接硬盘,或者一个 USB 闪存。
容器本身是临时的,你一删它,它的数据也跟着没了。但卷是用来“长期保存数据”的地方,就算容器删了,卷里的数据还在!
📘 举个具体的例子:
你有个 MySQL 容器,它把数据(用户表、订单表等等)全都保存在一个**卷(volume)**里:
services:
db:
image: mysql
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
/var/lib/mysql
是 MySQL 容器里保存数据的路径,mysql_data
是你创建的一个卷(Volume),实际是一个本地文件夹或者特殊的 Docker 存储空间。
👨🔧 如果你以后重启容器,数据还在。
💥 但如果你删了这个卷,数据库就像重装了,什么表都没了。
🧨 所以,当你运行:
sudo docker-compose down
- 它默认不会删卷(安全一点,避免误删数据)。
- 如果你真的想清掉卷,可以加一个参数:
sudo docker-compose down -v
💥 这个 -v
就是:
“连同这些保存数据的卷也一并删除”,就像把硬盘格式化了!
📦 总结一下:
名词 | 人话解释 | 类比 |
---|---|---|
容器 | 一个正在运行的小程序 | 程序 |
卷(volume) | 存数据的“外接硬盘” | U盘、D盘 |
down | 停服务,但保留卷数据 | 程序关了,数据还在 |
down -v | 停服务并清空数据 | 程序关了,硬盘也格式化了 |
docker volume ls
查看所有卷~