Docker pull error:x509:证书已过期或尚未生效

时间:2016-02-09 10:37:21

标签: ubuntu docker x509certificate pull crt

问题描述:

我试图使用此命令从公共注册表中提取ubuntu:

docker pull ubuntu

然后我得到了这个结果(上一个命令昨天正在运行):

"拉图片时出错:获取https://index.docker.io/v1/repositories/library/ubuntu/images:x509:证书已过期或尚未生效"

docker version:

Client:
Version: 1.10.0
API version: 1.22
Go version: go1.5.3
Git commit: 590d510
Built: Thu Feb 4 18:36:33 2016
OS/Arch: linux/amd64

Server:
Version: 1.10.0
API version: 1.22
Go version: go1.5.3
Git commit: 590d510
Built: Thu Feb 4 18:36:33 2016
OS/Arch: linux/amd64

码头信息:

Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 20
Server Version: 1.10.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 44
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins: 
Volume: local
Network: bridge null host
Kernel Version: 3.19.0-49-generic
Operating System: Ubuntu 14.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 5.815 GiB
Name: ubuntu
ID: Y6OO:23T2:BAPU:DVQJ:HJCJ:USEP:T6EU:PMG4:O4M6:46C7:JKPC:BQHT
WARNING: No swap limit support

uname -a:

Linux ubuntu 3.19.0-49-generic #55~14.04.1-Ubuntu SMP Fri Jan 22 11:24:31 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

我验证了我的"日期"一切都很好。我不知道这个问题可以来自哪里。

14 个答案:

答案 0 :(得分:5)

这个人为我做了docker-machine regenerate-certs --client-certs

答案 1 :(得分:4)

您可以在启动docker deamon时使用--insecure-registry选项,也可以提供有效的证书路径。在这里查看details

答案 2 :(得分:3)

这件事也发生在我身上

  • 尝试登录人工工厂时。
  • 我的本地docker守护程序已经运行了几周了。

我只是重新启动了本地d​​ocker守护程序,并且可以登录到Artifactory,而没有任何错误消息。

答案 3 :(得分:2)

我收到此错误,它与系统日期/时间设置有关。 (我意识到OP表示他的约会还可以,只是为可能到达此页面的其他人添加此评论-就像我一样!)

当我启动机器并且时间/日期设置不正确时出现问题。后来,在我的机器上设置了正确的日期/时间设置后,我尝试从docker提取图像,并收到上述错误。

我重新启动了在本地运行的docker守护程序,因此它获取了新的日期/时间,现在可以再次成功拉出。

答案 4 :(得分:1)

在我的情况下,我决定将服务器的日期和时间更改为当前日期。

答案 5 :(得分:0)

这显然也可能随时间而发生,这是Windows的Docker Desktop的问题。默认情况下,运行Docker守护程序的Linux VM上的时钟不会与您的主要Windows主机同步时间。如果像我一样,您在笔记本电脑上工作,并且笔记本电脑长时间处于睡眠状态,而无需重新启动或重新启动Docker,则看来Linux VM的时钟可以漂移得足够多,您可以得到此错误。但是,重新启动Docker可以清除它。

我认识到OP可能不再需要答案,并且不一定是OP的问题(没有迹象表明他们是否使用Windows),但是由于我是通过对这个问题的深入研究而来到这里的,会添加答案。

答案 6 :(得分:0)

检查您的Docker注册表是否正在运行。如果没有注册表运行 尝试 docker run -d -p 5000:5000 --name注册表注册表:2

答案 7 :(得分:0)

如果其他建议没有帮助您,请确保您不要使用反向代理(例如Apache) AND

如果同时使用两者,则很有可能* .jks尚未使用最新证书进行更新。

答案 8 :(得分:0)

我在centos vagrant vm计算机上遇到了类似的问题。当我提取任何docker镜像时,出现了以下波纹错误

   error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/4b/4bb46517cac397bdb0bab6eba09b0e1f8e90ddd17cf99662997c3253531136f8/data?verify=1597376104-j8KSa2vKDeIZNFuPq0EP9cb3sqc%3D: x509: certificate has expired or is not yet valid

问题是centos vagrant vm计算机的日期和时区与我的主机不同。 将我的VM机器更新为与主机相同的日期和时区后,此问题已解决。

   #check the timezone
   $timedatectl
   #update timezone
   $timedatectl set-timezone America/Toronto
   #update date
   date --set="Fri August 14 3:08:10 EDT 2020"

答案 9 :(得分:0)

在开发环境中,可以避免此错误,修改文件daemon.json定位在 /etc/docker/daemon.json 在列表中添加一个不安全的注册表并重新启动docker引擎

{
  "insecure-registries" : [ "myinsecureregistry.com:443", "myinsecureregistry.com", "x.x.x.x:5000" ]
}

参考:daemon configuration

答案 10 :(得分:0)

如果Windows上的Docker发生了这种情况

只需重新启动Docker Desktop

答案 11 :(得分:0)

在 Windows 上,使用 WSL2 后端?您可以打开一个新的 WSL2 命令提示符并使用:

sudo hwclock -s

答案 12 :(得分:-1)

只要您遇到以下问题,请正确设置日期和时间:

“提取图像时出错:获取https://index.docker.io/v1/repositories/library/ubuntu/images:x509:证书已过期或尚未生效”

在Linux系统上使用以下命令设置日期和时间

sudo date --set ='Mon Jan 13 14:50:44 IST 2020'“注意” =>如果您来自不同时区,请设置为CST,EST,EDT等。

答案 13 :(得分:-3)

您需要检查网络配置。如果您分配单个网络接口,您将遇到此问题。在网络设置检查中,NIC是公共和私有的。