You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Docker Compose避免执行down时删除数据卷?

如何避免docker compose down误删数据卷?

当然可以通过配置docker-compose.yml来避免这个问题,核心思路是让数据卷脱离docker compose down的默认清理范围,具体有两种常用方式:

  • 显式定义命名数据卷
    docker compose down默认只会删除那些未命名、由compose自动创建的数据卷。如果在配置里显式给数据卷命名,down操作就不会动它。示例配置:

    version: '3.8'
    services:
      db:
        image: mysql:8.0
        volumes:
          - mysql_data:/var/lib/mysql  # 引用下面定义的命名卷
    volumes:
      mysql_data:  # 显式声明命名数据卷
    

    这样执行docker compose down后,mysql_data卷会被保留,只有加上-v参数才会删除它。

  • 使用外部数据卷
    如果数据卷是你预先用docker volume create命令手动创建的,只要在compose里标记它为外部卷,down操作也不会删除。示例配置:

    version: '3.8'
    services:
      db:
        image: mysql:8.0
        volumes:
          - external_mysql_data:/var/lib/mysql
    volumes:
      external_mysql_data:
        external: true  # 标记为外部已存在的卷
    

补充说明:docker compose down的默认清理规则是:删除服务容器、compose创建的网络,以及未命名的自动生成数据卷。只要把需要保护的数据卷显式命名或设为外部,就能避免误操作导致的数据丢失。

内容的提问来源于stack exchange,提问作者stwissel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 12:17:35