CompreFace启动报错,想使用一下人脸识别,换了好多源才下完,结果运行报错求帮助。
D:\Download\CompreFace>docker-compose up -d
time="2026-01-08T09:00:00+08:00" level=warning msg="D:\Download\CompreFace\docker-compose.yml: the attribute version is obsolete, it will be ignored, please remove it to avoid potential confusion"
[+] Running 5/5
✔ Network compreface_default Created 0.0s
✔ Container compreface-postgres-db Created 0.1s
✔ Container compreface-core Created 0.1s
✔ Container compreface-api Created 0.1s
✘ Container compreface-admin Error response from daemon: error walking man... 0.0s
Error response from daemon: error walking manifest for docker.io/exadel/compreface-admin:1.2.0: descriptor is neither a manifest or index
关于#docker#的问题:CompreFace启动报错
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
檀越@新空间 2026-01-08 09:14关注上午好☀️☀️☀️️
本答案参考通义千问你遇到的错误信息是:
Error response from daemon: error walking manifest for docker.io/exadel/compreface-admin:1.2.0: descriptor is neither a manifest or index这个错误通常表明 Docker 无法从指定的镜像仓库中找到对应的镜像,或者镜像本身存在问题。以下是详细原因分析与解决方案:
✅ 问题原因分析
-
镜像版本不存在或不正确:
docker.io/exadel/compreface-admin:1.2.0可能不存在于 Docker Hub 上,或者该版本已被删除。- 检查是否使用了错误的镜像名或标签。
-
网络或 DNS 问题:
- Docker 客户端可能无法连接到 Docker Hub 或其他镜像仓库。
- 防火墙、代理设置等可能影响镜像拉取。
-
Docker Compose 文件配置错误:
docker-compose.yml中可能引用了错误的镜像名称或标签。
-
Docker 版本过旧:
- 如果你的 Docker 版本太低,可能无法兼容某些镜像格式。
🔧 解决方案步骤
1. 检查镜像是否存在
- 打开浏览器,访问 https://hub.docker.com
- 搜索
exadel/compreface-admin,查看是否有1.2.0版本。 - 如果没有该版本,说明你使用的
docker-compose.yml中的镜像版本可能已经过时或错误。
建议: 使用最新版本(如
latest)或确认正确的版本号。
2. 修改
docker-compose.yml文件假设你的
docker-compose.yml中有如下内容:services: admin: image: exadel/compreface-admin:1.2.0请将其修改为:
services: admin: image: exadel/compreface-admin:latest注意: 如果你必须使用特定版本,请确保该版本在 Docker Hub 上确实存在。
3. 清理并重新拉取镜像
运行以下命令清理旧容器和镜像:
docker-compose down docker system prune -a然后重新启动:
docker-compose up -d
4. 检查 Docker 网络连接
- 确保你的网络可以访问 Docker Hub。
- 如果你在使用代理,请检查 Docker 的代理设置是否正确。
- 在 Windows 上,可以尝试关闭防火墙或使用
docker info查看网络状态。
5. 更新 Docker
如果你使用的是较旧的 Docker 版本,可能会出现兼容性问题。请更新到最新版本:
6. 替换为官方推荐镜像(可选)
如果 CompreFace 官方提供了更稳定的部署方式,建议参考其官方文档进行部署,例如:
🛠️ 示例修改后的
docker-compose.yml文件version: '3' services: postgres-db: image: postgres:13 environment: POSTGRES_USER: compreface POSTGRES_PASSWORD: compreface POSTGRES_DB: compreface volumes: - postgres-data:/var/lib/postgresql/data networks: - compreface_default core: image: exadel/compreface-core:latest ports: - "8080:8080" depends_on: - postgres-db networks: - compreface_default api: image: exadel/compreface-api:latest ports: - "8081:8081" depends_on: - core networks: - compreface_default admin: image: exadel/compreface-admin:latest ports: - "8082:8082" depends_on: - api networks: - compreface_default volumes: postgres-data: networks: compreface_default:
📌 总结
| 问题 | 解决方案 | |------|----------| | 镜像版本不存在 | 更改
docker-compose.yml中的镜像版本为latest或确认正确版本 | | 网络连接异常 | 检查网络设置,确保可以访问 Docker Hub | | Docker 版本过旧 | 升级 Docker 到最新版本 | | 配置错误 | 重新生成或下载官方推荐的docker-compose.yml|
如果你仍然无法解决,欢迎提供完整的
docker-compose.yml文件内容,我可以帮你进一步排查。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报-