使用anchore/engine-cli添加Docker镜像时遇“image: not found”错误求助
解决Anchore Engine CLI添加镜像时的
exec: image: not found错误 错误原因
这个错误是因为anchore/engine-cli容器的入口脚本无法将image识别为合法可执行命令,本质是你的命令格式不符合Anchore CLI的使用要求——Anchore CLI需要先配置与Anchore Engine服务的连接参数,才能执行image add这类子命令。
解决方案
1. 确认Anchore Engine运行状态
首先确保你的Anchore Engine服务在Docker Desktop中正常运行,默认服务端口为8228。如果是本地部署的Engine,容器内可通过host.docker.internal访问主机上的服务。
2. 用环境变量传递连接参数执行命令
直接在docker run命令中通过环境变量指定Anchore Engine的连接信息,完整命令格式如下:
docker run -e ANCHORE_CLI_URL=http://host.docker.internal:8228/v1 -e ANCHORE_CLI_USER=admin -e ANCHORE_CLI_PASS=foobar anchore/engine-cli image add your-image:tag
- 替换
ANCHORE_CLI_USER和ANCHORE_CLI_PASS为你的Anchore Engine管理员账号密码(默认是admin/foobar) - 替换
your-image:tag为实际要添加的镜像名称和标签,比如nginx:latest,无需额外加引号
3. 挂载本地配置文件执行命令
如果不想每次都输入环境变量,可在本地创建Anchore CLI配置文件:
- 在用户目录下创建
.anchore文件夹,新建config.yaml文件,内容如下:
url: http://host.docker.internal:8228/v1 user: admin password: foobar verify_ssl: false
- 运行容器时挂载该目录到容器的
/root/.anchore路径:
docker run -v ${HOME}/.anchore:/root/.anchore anchore/engine-cli image add your-image:tag
4. 修正镜像名称格式
原命令中的XXXXX:"image-name"格式有误,镜像名称需遵循仓库名/镜像名:标签的标准格式,无需额外添加引号(除非镜像名包含特殊字符,这种情况建议用单引号包裹)。
内容的提问来源于stack exchange,提问作者TheTricky65
相关产品推荐
相关产品推荐

