链接复制成功!
为什么docker pull指令执行失败?
x509: certificate signed by unknown authority
问题现象:使用docker pull拉取镜像,报错“x509: certificate signed by unknown authority”。
问题原因:
- 容器引擎客户端和SWR之间使用HTTPS的方式进行通信,客户端会对服务端的证书进行校验。如果客户端安装的根证书不完整,会报如下错误:“x509: certificate signed by unknown authority”。
- 容器引擎客户端配置了Proxy导致。
解决方法:
- 如果您信赖服务端,跳过证书认证,那么可以手动配置容器引擎的启动参数,配置如下(其中地址配置成需要的即可,选择一个配置即可):
- /etc/docker/daemon.json(如果没有可以手动创建),在该文件内添加如下配置(注意缩进,2个空格):
{ "insecure-registries":["镜像仓库地址"] }
- /etc/sysconfig/docker:
INSECURE_REGISTRY='--insecure-registry=镜像仓库地址'
添加配置后执行如下命令重启:systemctl restart docker或service restart docker。
- /etc/docker/daemon.json(如果没有可以手动创建),在该文件内添加如下配置(注意缩进,2个空格):
- 执行docker info命令,检查Proxy配置是否正确,修改为正确的Proxy配置。
Error response from daemon
问题现象:使用docker pull拉取官方镜像,报错“Error response from daemon: Get "https://index.docker.io/v1/search?q=redis&n=25": dial tcp *.*.*.*: i/o timeout”。
问题原因:根据Docker公司政策,2020年11月01日起将逐步向Docker Hub匿名和免费用户实施速率和拉取请求次数限制。所以,您构建服务拉取Docker Hub镜像,将可能受此影响导致构建失败。详情请查看国内网络访问dockerhub异常的公告。
解决方法:建议您将需要的镜像从Docker Hub同步到SWR私有仓库使用
Error: remote trust data does not exist
问题现象:使用docker pull拉取镜像,报错“Error: remote trust data does not exist”。
问题原因:客户端开启镜像签名验证,而镜像没有镜像签名层。
解决方法:查看“/etc/profile”文件中的环境变量是否设置了DOCKER_CONTENT_TRUST=1,如果设置了,请将其改为DOCKER_CONTENT_TRUST=0,然后执行source /etc/profile生效。
不允许用户下载镜像
问题现象:使用客户端下载镜像,报如下所示错误:
“Not allow to login、upload or download image”
问题原因:用户大批量并发上传镜像或者攻击服务,系统把用户拉黑,用户无法登录和上传下载镜像。
- 请在30分钟之后重新尝试。
- 通过提工单的形式,由运维工程师进行处理。