为什么登录指令执行失败?
登录指令执行失败有以下几种情况:
- 容器引擎未安装正确,报如下所示错误:
解决方法:重新安装容器引擎。
- 由于容器镜像服务支持容器引擎1.11.2及以上版本上传镜像,建议下载对应版本。
- 安装容器引擎需要连接互联网,内网服务器需要绑定弹性IP后才能访问。
- 临时登录指令已过期或登录指令中区域项目名称、AK、登录密钥错误,报如下所示错误:
“unauthorized: authentication required”
解决方法:登录容器镜像服务控制台,在左侧菜单栏选择“我的镜像”,单击右侧“客户端上传”获取登录指令。
- 登录指令中镜像仓库地址错误,报如下所示错误:
“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”
解决方法:
- 修改登录指令中的镜像仓库地址。
- 获取临时的登录指令:方法请参见2。
- x509: certificate has expired or is not yet valid
长期有效登录指令中AK/SK被删除导致,请使用有效的AK/SK生成登录指令。
- 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重启容器引擎。
- CentOS: