章北海 (@alertsc) 在 迁移到docker compose后如何沿用原来的卷 中发帖
从docker方式运行改成docker compose方式后,即使所有参数都保持一致,原来的卷依然不能直接使用。因为compose方式检测到配置的卷名已经存在就会通过添加后缀的方式创建全新的卷用于挂载,这样所有原有数据都无法继承。原本打算修改卷名方式欺骗compose这一机制,但是docker volume没有rename参数可用。解决办法就是设置外部卷。外部卷是已经存在的卷,外部卷不能通过docker compose down -v删除,必须手工管理。外部卷依然可以保持数据的持久性。
以open-webui为例。说明迁移后的配置修改。
volumes: open-webui: # 卷的定义
external: true # 声明这是外部卷
name: open-webui # 指定实际的卷名称
注意,如果没有在首次docker compose运行时就添加了exter...