更新时间:2024-04-19 GMT+08:00

为什么登录指令执行失败?

登录指令执行失败有以下几种情况:

  1. 容器引擎未安装正确,报如下所示错误:

    “docker: command not found”

    解决方法:重新安装容器引擎。

    • 由于容器镜像服务支持容器引擎1.11.2及以上版本上传镜像,建议下载对应版本。
    • 安装容器引擎需要连接互联网,内网服务器需要绑定弹性IP后才能访问。
  1. 临时登录指令已过期或登录指令中区域项目名称、AK、登录密钥错误,报如下所示错误:

    “unauthorized: authentication required”

    解决方法:登录容器镜像服务控制台,在左侧菜单栏选择“我的镜像”,单击右侧“客户端上传”获取登录指令。

    1. 获取临时的登录指令:单击“生成临时登录指令”,在弹出的页面中单击复制登录指令。
    2. 获取长期有效的登录指令:单击“如何获取长期有效登录指令”,参考其中的指导获取。
  2. 登录指令中镜像仓库地址错误,报如下所示错误:

    “Error llgging in to v2 endpoint, trying next endpoint: Get https://{{endpoint}}/v2/: dial tcp: lookup {{endpoint}} on xxx.xxx.xxx.xxx:53 : no such host”

    解决方法:

    1. 修改登录指令中的镜像仓库地址。
    2. 获取临时的登录指令:方法请参见2
  3. x509: certificate has expired or is not yet valid

    长期有效登录指令中AK/SK被删除导致,请使用有效的AK/SK生成登录指令。

  4. x509: certificate signed by unknown authority

    问题原因:

    容器引擎客户端和SWR之间使用HTTPS的方式进行通信,客户端会对服务端的证书进行校验。如果服务端证书不是权威机构颁发的,则会报如下错误:x509: certificate signed by unknown authority

    解决方法:

    如果用户信赖服务端,跳过证书认证,那么可以手动配置Docker的启动参数,配置方法如下:

    • CentOS:

      修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容:

      {
        "insecure-registries": ["{镜像仓库地址}"]
      }
    • Ubuntu:

      修改“/etc/default/docker”文件,在DOCKER_OPTS配置项中增加如下内容:

      DOCKER_OPTS="--insecure-registry {镜像仓库地址}"
    • EulerOS:

      修改“/etc/sysconfig/docker”文件,在INSECURE_REGISTRY配置项中增加如下内容:

      INSECURE_REGISTRY='--insecure-registry {镜像仓库地址}'

    镜像仓库地址支持域名和IP形式。

    • 域名形式的镜像仓库地址获取方式:参考2获取临时登录指令,末尾的域名即为镜像仓库地址。
    • IP:可通过ping镜像仓库地址(域名形式)获取。

    配置完成后,执行systemctl restart docker重启容器引擎。