本文介绍Docker登录、推送和拉取失败时处理方法。
docker login失败
为什么docker login失败?
登录失败时,参考如下步骤进行排查。
您使用了阿里云账户的登录密码,而不是Registry的独立登录密码。Registry的登录密码是在容器镜像服务控制台上设置与修改的,操作步骤如下。
在实例列表页面单击实例卡片,进入实例详情页。
在左侧导航栏选择
。在访问凭证页面,单击右上角的设置固定密码。
在设置固定密码对话框,设定Registry的登录密码,然后单击确定。
您使用了sudo进行登录。使用sudo时,系统第一个要求输入的密码是Linux的用户密码。您可能在这里输入了Registry的登录密码,导致登录操作失败。
区分这个错误的方式很简单,Linux的用户密码大多允许尝试三次,错误时会提示try again。而Registry的登录密码错误一次之后就会退出,并返回以下错误。
Error response from daemon: Get https://registry.cn-hangzhou.aliyuncs.com/v2/: unauthorized: authentication required
如果您使用的是RAM用户,请勿使用阿里云账号设置的密码登录镜像仓库,您需要在容器镜像控制台设置密码,然后使用该密码登录镜像仓库。具体操作,请参见配置访问凭证。
为什么docker login超时?
检查您的网络是否可以正常使用。如果您的网络不能正常使用,将无法访问到实例,从而会导致docker login超时。
docker pull失败
docker pull失败,报错提示Error: image xxx not found
报错提示Error: image xxx not found
下载失败时,请参考如下步骤进行排查。
检查镜像地址:
确认您输入的镜像地址是正确的,特别是在使用公共镜像时。
可以在容器镜像服务控制台中查看镜像的具体地址和版本。
私有仓库的登录状态:
使用
cat ~/.docker/config.json
查看已登录的 Registry 域名,确保您的私有仓库域名在其中。如果未登录,需使用
docker login
命令进行登录。
账户权限:
确认您使用的账户有权限访问或下载该镜像,尤其是使用子账户时,默认情况下可能没有相关权限。
可以在仓库的访问控制设置中进行权限管理。关于仓库的访问控制授权,请参见仓库访问控制。
少数情况下会出现如下报错,下载的块文件检验失败。一般重试即可解决。
报错提示:Error: filesystem layer verification failed for digest
为什么在企业版实例匿名拉取镜像会失败?
您需要在概览页面右侧实例设置区域打开公开匿名拉取,您才可以匿名拉取镜像。
docker push失败
docker push失败,报错提示denied: requested access to the resource is denied
上传失败时,主要的排查步骤和docker pull基本一致,只是授权要求的级别比docker pull更高。
为什么docker push会失败?
推送镜像之前请确保镜像已创建镜像仓库。如果没有镜像仓库,请确保命名空间已开启自动创建仓库功能。