docker pull报x509问题及docker启动失败问题解决

docker pull 报x509

最近通过docker pull拉取私有仓库镜像出错,具体报错(证书问题):

docker pull 私有仓库ip/资源路径

x509: certificate has expired or is not yet valid

要注意。如果报509问题通常两方面原因:

  • 1.系统时间不同步
  • 2.证书问题,daemon.json文件配置有问题

1.系统时间不同步-解决方案

先使用date命令查看系统当前时间,如果明显有问题,就要用到另外一个工具:ntpdate,如果没有此命令,安装即可,ubuntu: apt install -y ntpdate,centos: yum install -y ntpdate

首先更新时间:

# 更新时间同步:
ntpdate cn.pool.ntp.org

然后从新拉取镜像,应该此问题就可以解决。

2.daemon.json文件配置有问题

证书的问题需要编辑 daemo.json 文件:vi /etc/docker/daemon.json

参考格式如下:

{
   "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
   "insecure-registries":[
      "172.xx.xxx.xxx:4433",   
      "reg-cloud.xxxxx.com"
   ]
}

注意编辑的时候,格式,单词拼写,符号等不要出错。

保存后,重新载入配置,然后重启docker:

# systemctl daemon-reload

# service docker restart 或者 systemctl restart docker

docker pull 公有仓库报x509错误

具体见如下:

Error response from daemon: Get https://registry-1.docker.io/v2/: x509: certificate signed by unknown authority

这个问题是本机没有远程仓库的证书文件(远程仓库是https://方式访问的)

解决方式简单:
输入以下命令
echo -n | openssl s_client -showcerts -connect registry-1.docker.io:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> /etc/ssl/certs/ca-certificates.crt
注意,每个人的情况可能不一样,对应pull的仓库用自己的domain,例如我的就是:registry-1.docker.io

更换后,重启docker:service docker restart

然后就可以正常pull镜像了:

link: docker X509 证书错误的终极解决办法

docker启动报错

docker启动的时候,报错:
Failed to start Docker Application Container Engine

该问题一般还是用户配置有问题导致,即上文提到的daemon.json,正确配置后重启docker,问题应该解决。

原文地址:https://www.cnblogs.com/davis12/p/14479377.html