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

如何使用Docker Volumes?Docker新手CVAT应用修改生效配置求助

针对CVAT Docker部署的修改与生效方案(新手友好版)

Hey there! 作为Docker和CVAT的新手,用Volumes来同步本地修改确实是最便捷的方式,我来一步步给你讲清楚怎么操作,结合你的docker-compose.yml配置来拆解:

先搞懂你现有配置里的Volumes

首先先帮你理清楚当前配置里的各个Volume作用,避免改错地方:

  • cvat_db:存储PostgreSQL数据库的数据,不用碰这个除非你要改数据库结构
  • cvat_data:保存CVAT的标注任务、用户上传文件等核心数据
  • cvat_keys:Django的加密密钥、认证相关文件
  • cvat_logs:后端服务的运行日志
  • cvat_models:预训练的AI标注模型文件

这些都是Docker命名卷,由Docker自动管理存储位置。而你要修改CVAT应用本身(代码、UI、配置),需要用绑定挂载——把本地的代码/配置目录直接挂到容器里,这样本地改完,容器里立刻同步。


1. 修改CVAT后端(cvat/server)代码/配置

CVAT后端是Django框架,容器里的代码目录是/home/django/cvat。要让本地修改生效,按下面步骤来:

  • 如果你还没克隆CVAT源码,先执行:git clone https://github.com/opencv/cvat.git,然后把你的docker-compose.yml放到CVAT源码根目录(因为配置里build.context: .指的是当前目录就是源码根)
  • 修改docker-compose.yml里的cvat服务的volumes部分,新增一行绑定挂载:
    cvat:
      # 其他配置不变...
      volumes:
        - cvat_data:/home/django/data
        - cvat_keys:/home/django/keys
        - cvat_logs:/home/django/logs
        - cvat_models:/home/django/models
        - ./:/home/django/cvat  # 新增:把本地源码目录挂到容器代码目录
    
  • 重启后端服务:docker-compose down && docker-compose up -d
  • 现在你在本地修改后端代码(比如./apps/engine/views.py),容器里的代码会自动同步。如果是修改Django配置这类需要重启服务的改动,执行docker-compose restart cvat就行。

2. 修改CVAT前端(cvat/ui)界面

CVAT前端是React项目,容器里的静态文件目录是/usr/share/nginx/html。操作步骤:

  • 本地CVAT源码里的ui文件夹就是前端代码
  • 修改docker-compose.yml里的cvat_ui服务,新增绑定挂载:
    cvat_ui:
      # 其他配置不变...
      volumes:
        - ./ui/dist:/usr/share/nginx/html  # 挂载本地构建好的前端文件到容器
    
  • 先在本地构建前端:进入ui目录,执行npm install && npm run build,生成dist文件夹
  • 重启前端服务:docker-compose restart cvat_ui
  • 之后改完前端代码,重新执行npm run build,刷新浏览器就能看到变化。如果想实时预览(不用每次构建),可以查CVAT的开发模式文档,但新手先从构建后同步的方式入手更稳。

3. 修改Nginx代理配置(cvat_proxy)

你已经配置了把本地的nginx.conf和cvat.conf.template挂载到容器里,这部分做得很对!修改这些文件后,只需要重启代理服务:docker-compose restart cvat_proxy,改动就会生效。


几个关键注意事项

  • 如果你的改动需要新增依赖(比如后端加Python包、前端加npm包),光挂载代码没用,得重新构建镜像:docker-compose build cvat(后端)或docker-compose build cvat_ui(前端),再重启服务
  • 命名卷(比如cvat_db)是Docker管理的,别直接去改它的存储目录,专注用绑定挂载来同步你自己的修改
  • 每次改完docker-compose.yml,都要重启对应的服务或者整个项目才能生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:32:52