push私有库时报"x509: certificate has expired or is not yet valid"
查baidu多说是服务器时间有问题,而我的服务器时间没有问题,私有库容器的时间确实有问题,于是在容器里执行了以下命令
~ # apk add --no-cache tzdata //安装时区相关包
~ # echo "Asiz/Shanghai" > /etc/timezone
~ # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
参考的是这个文章:https://www.cnblogs.com/doclove/p/7444426.html
至此容器与服务器的时间都没有问题了,但情况依旧没有解决。后翻查自己生成私有库的文章,使用的是以下命令
openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt
这明显就是一年后过期,估计是我自己的私有证书真的过期了。过期的处理方法这有一文章说得比较完整。
https://blog.csdn.net/Urms_handsomeyu/article/details/105890562
我没有完全按照上面的处理过程。只是简单的以下几个过程
1。重新生成3650天的私有密要
2。复制私有密要domain.crt文件到几个地方。:1)私有库container指定的目录、2)各服务器/etc/docker/certs
.d
/yourlocal.server.name
/ca
.crt
其中的yourlocal.server.name需要换为您自己的服务器地址。
3。重启私有库的container:docker container restart 0e4106def49a
问题解决。