logo NodeSeekbeta

docker compose down 别顺手带 -v,命名卷也会被删

docker compose down 默认会删容器和网络,不会删命名卷。加上 -v 就不同了:Compose 里声明的命名卷、容器挂着的匿名卷都会被删除,数据库放在里面的话,数据也跟着没了。

只是停服务,用 docker compose stop;更新镜像通常用 docker compose pull 再 docker compose up -d,没必要顺手清卷。

两个区别:external 卷不会被 down -v 删除;./data:/var/lib/mysql 这种绑定挂载,宿主机的 ./data 目录也不会被这个参数删掉。匿名卷虽然默认没删,下次 up 也不会自动接回原来的卷,长期数据最好用命名卷或明确的目录。

文档:https://docs.docker.com/reference/cli/docker/compose/down/

  • 感谢科普

  • 补一个更阴险的场景:有人把 down -v 写进部署脚本做「干净重建」,平时没事,哪天 compose 文件里的卷名改了,旧卷既不被删也不被接回,看着像数据丢了其实还在 docker volume ls 里。排查时先看卷列表再哭

  • 现在个人不爱用卷了,还是挂载到本地文件夹方便点。备份方便而且可以直接从宿主上进去修修补补 xhj008

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72459位seeker

🎉欢迎新用户🎉