• v2版为官方维护,v1版为旧版的开源版。本文以v2为准。安装见Linux
  • v1的语法基本类似,将docker compose替换为docker-compose

配置文件

大部分内容和DockerFile相同,。以Dify的配置文件为例

services:
  api:
    image: langgenius/dify-api:1.6.0
    restart: always
    privileged: true
    environment:
      MODE: api
      SENTRY_DSN: ${API_SENTRY_DSN:-}
      ……
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_started
    volumes:
      - ./volumes/app/storage:/app/api/storage
    networks:
      - ssrf_proxy_network
      - default
  db:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-postgres}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-difyai123456}
    command: >
      postgres -c 'max_connections=${POSTGRES_MAX_CONNECTIONS:-100}'
               -c 'shared_buffers=${POSTGRES_SHARED_BUFFERS:-128MB}'
               -c 'work_mem=${POSTGRES_WORK_MEM:-4MB}'
               -c 'maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-64MB}'
               -c 'effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-4096MB}'
    volumes:
      - ./volumes/db/data:/var/lib/postgresql/data
    healthcheck:
      test: [ 'CMD', 'pg_isready', '-h', 'db', '-U', '${PGUSER:-postgres}', '-d', '${POSTGRES_DB:-dify}' ]
      interval: 1s
      timeout: 3s
      retries: 60
……

基本操作

进入存在docker-compose.yaml的目录下:

启动

docker-compose up -d启动,不加-d可查看所有容器的启动时输出内容 有的版本的compose启动时,会给默认名字docker_服务_序号这种情况下启动多个项目很有可能会导致容器互相冲突,建议自行命名不同的container,加-p参数:docker compose -p project_name up -d

暂停

docker compose stop

构建镜像

根据compose文件批量的构建镜像docker compose build

查看所有镜像

查看所有镜像详情

导出镜像

导出镜像