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

执行docker-compose up时出现caddy:2-alpine镜像解析错误求助

解决Docker-Compose镜像短名称解析失败的问题

错误原因

报错ERROR: failed to resolve image name: short-name "caddy:2-alpine" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf",是因为容器运行工具(如Podman或配置了特定规则的Docker)无法识别不带仓库前缀的镜像短名称,默认需要配置未限定搜索仓库(如Docker Hub)才能自动拉取这类镜像。

解决方法

方法一:指定完整镜像地址

直接在docker-compose.yaml中给镜像加上Docker Hub的完整前缀,绕过短名称解析逻辑:

  • 将image: caddy:2-alpine改为image: docker.io/caddy:2-alpine
  • 将image: postgres改为image: docker.io/postgres

方法二:配置短名称搜索仓库

编辑/etc/containers/registries.conf文件,添加Docker Hub作为默认搜索仓库:

unqualified-search-registries = ["docker.io"]

保存后重启容器服务(例如systemctl restart podman或对应的Docker服务),工具会自动从Docker Hub搜索短名称镜像。

额外修复:Docker-Compose.yaml格式问题

你的配置文件中django和pgdb服务未缩进在services节点下,属于语法错误,会导致服务无法正常加载。同时Caddy的反向代理目标地址应使用Django服务名而非0.0.0.0(容器间通过服务名通信),修正后的完整配置如下:

version: "3"

services:
  # CaddyServer反向代理
  caddy:
    restart: always
    image: docker.io/caddy:2-alpine
    ports:
      - "443:443"
    command: caddy reverse-proxy --from https://xxxxxx.com --to http://django:8000
    #volumes:
    #    - /local/path/to/Caddyfile:/path/inside/continer/to/Caddyfile

  # Django Web应用
  django:
    restart: always
    build: .
    ports:
      - "80:8000"
    depends_on:
      - pgdb
    #environment:
    #    - url=https://api.backend.example.com
    #command: "gunicorn config.wsgi:application --bind 0.0.0.0:8000"

  pgdb:
    image: docker.io/postgres
    container_name: pgdb
    environment:
      - POSTGRES_DB=xxxxx
      - POSTGRES_USER=xxxx
      - POSTGRES_PASSWORD=xxxx
    volumes: 
      - pg-data:/var/lib/postgresql/data/

volumes:
  pg-data:

内容的提问来源于stack exchange,提问作者Furkan Yıldız

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:50:30