volumes:
mysql_data:
external: true
external: true
表示这个 volume 是由外部创建并管理的,Compose 不会自动创建。你需要在用它之前手动执行:docker volume create mysql_data
否则
docker-compose up
会报错找不到这个 volume。使用
external: true
的好处:1. 容器销毁时数据不会丢失:
外部 volume 不会随着
docker-compose down -v
被自动删除,适合持久化数据,比如数据库。2. 可被多个项目共享:
同一个 external volume 可以被多个 Compose 项目挂载使用,实现跨项目共享数据。
3. 避免误删:
不属于 Compose 管理范围,误操作删除 Compose 项目时不会影响 volume 本身。
注意:需要确保 volume 已存在(否则启动时报错),管理上也要小心,不需要的时候要记得手动删除。
#docker