更新时间:2024-03-06 GMT+08:00

为什么docker pull指令执行失败?

x509: certificate sigined by unknown authority

问题现象:使用docker pull拉取镜像,报错“x509: certificate sigined by unknown authority”。

问题原因:

  • 容器引擎客户端和SWR之间使用HTTPS的方式进行通信,client会对服务端的证书进行校验,如果客户端安装的根证书不完整,会报如下错误:“x509: certificate sigined by unknown authority”。
  • 容器引擎客户端配置了Proxy导致。

解决方法:

  • 如果您信赖服务端,跳过证书认证,那么可以手动配置容器引擎的启动参数。以下2种方式任选一种(注意:请将镜像仓库地址修改为实际镜像仓库地址):
    • /etc/docker/daemon.json(如果没有可以手动创建),在该文件内添加如下配置(注意缩进,2个空格):
      {
        "insecure-registries":["镜像仓库地址"]
      }
    • /etc/sysconfig/docker:
      INSECURE_REGISTRY='--insecure-registry=镜像仓库地址'

    添加配置后执行如下命令重启:systemctl restart dockerservice docker start。

  • 执行docker info命令,检查proxy配置是否正确,修改为正确的proxy配置。

Error: remote trust data does not exist

问题现象:使用docker pull拉取镜像,报错“Error: remote trust data does not exist”。

问题原因:客户端开启镜像签名验证,而镜像没有镜像签名层。

解决方法:查看环境变量是否设置了DOCKER_CONTENT_TRUST=1,如果设置了,请修改“/etc/profile”文件。将DOCKER_CONTENT_TRUST=1去掉,然后执行source /etc/profile生效。