本文介绍 Docker 客户端常见问题的处理方法。

docker login 失败

登录失败时,参考如下步骤进行排查。

  • 您使用了阿里云账户的登录密码,而不是 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                    

docker pull 失败

报错提示 Error: image xxx not found

下载失败时,请参考如下步骤进行排查。

  • 如果您是从公共仓库中下载镜像,那么问题可能是镜像地址不正确。

    请在 容器镜像服务管理控制台 搜索该公共仓库,检查确认想要下载的这个镜像版本是否真实存在。

  • 如果您是从私有仓库中下载镜像,需要首先确认 Registry 的登录状态。
    1. 运行下边的命令,显示所有登录的 Registry 域名。
      cat ~/.docker/config.json                    
    2. 查看里面是否包含您想要下载镜像的 Registry 域名。

      如果没有的话,您需要先进行登录操作。

      如果显示已经登录的话,那么您需要确认您登录的这个账户是否有权限下载这个镜像。子账户默认没有任何权限,参见下方相关链接中主子账户授权的文档。

    说明 少数情况下会出现如下报错,下载的块文件检验失败。一般重试即可解决。

    报错提示:Error: filesystem layer verification failed for digest

docker push 失败

报错提示 denied: requested access to the resource is denied

上传失败时,主要的排查步骤和 docker pull 基本一致,只是授权要求的级别比 docker pull 更高。