问题描述:
我试图使用此命令从公共注册表中提取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
我验证了我的"日期"一切都很好。我不知道这个问题可以来自哪里。
答案 0 :(得分:5)
这个人为我做了docker-machine regenerate-certs --client-certs
答案 1 :(得分:4)
您可以在启动docker deamon时使用--insecure-registry
选项,也可以提供有效的证书路径。在这里查看details。
答案 2 :(得分:3)
这件事也发生在我身上
我只是重新启动了本地docker守护程序,并且可以登录到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" ]
}
答案 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是公共和私有的。