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

为何Portainer Docker Compose会创建新卷并忽略已创建的portainer_data卷?

问题原因及解决方案

问题出在你的Docker Compose配置中,volumes段的portainer_data没有声明为外部卷。当Compose启动时,它会默认创建一个属于当前Compose项目的命名卷,而非使用你预先创建的全局卷。

修复步骤

修改你的Compose文件,在volumes部分给portainer_data添加external: true配置,告知Compose该卷是已存在的外部卷,无需重新创建:

version: '3.3'
services:
    portainer-ce:
        ports:
            - '8000:8000'
            - '9443:9443'
        container_name: portainer
        restart: unless-stopped
        command: -H tcp://agent:9001 --tlsskipverify
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
            - portainer_data:/data
        image: 'portainer/portainer-ce:latest'
    
    agent:
        container_name: agent
        image: portainer/agent:latest
        restart: unless-stopped
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - /var/lib/docker/volumes:/var/lib/docker/volumes
        ports:
          - "9001:9001"

volumes:
  portainer_data:
    external: true  # 添加该行配置

验证操作

  1. 停止并移除当前Portainer容器:
docker-compose down
  1. 应用修改后的配置启动服务:
docker-compose up -d
  1. 查看卷详情,确认Portainer正在使用你预先创建的portainer_data卷:
docker volume inspect portainer_data

配置修改后,Compose会直接复用你之前创建的portainer_data卷,不会再生成新的同名卷。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:20