我正在使用自定义映像运行Docker堆栈,该映像已推送到Artifactory存储库。
docker-compose.yml:
version: "3"
services:
app:
image: repo.example.com/my_image:latest
我可以很好地拉映像,也可以很好地部署堆栈,但是如果尝试重新部署堆栈,则会出现错误。
$ docker stack deploy --with-registry-auth -c docker-compose.yml my_stack
Creating network my_stack_default
Creating service my_stack_app
$ docker stack deploy --with-registry-auth -c docker-compose.yml my_stack
Updating service my_stack_app (id: 8po6oepjdgo8kwsb7n4ig64dt)
unable to pin image repo.example.com/my_image:latest to digest: unauthorized: The client does not have permission for manifest
我希望Docker在重新部署堆栈时会更新映像,就像使用Docker Hub中的映像一样。
我以前曾经看到Docker说unable to pin image
,但是那是我没有指定存储库(例如docker.io)的时候。我知道我已获得repo.example.com
的许可,因为我将图像推送到那里,我仍然可以从中提取图像,并且可以启动堆栈。我只是无法更新。
此client does not have permission for manifest
错误是什么意思,如何解决此问题?
答案 0 :(得分:0)
您的用户似乎对此存储库没有“删除/覆盖”权限。请让您的Artifactory管理员为该存储库的用户添加此权限,然后重试。
希望这会有所帮助!