登录非安全镜像仓库¶
当要从非安全的镜像仓库中进行 Pull、Push 时,会遇到 x509: certificate signed by unknown authority 错误提示; 这是由于镜像仓库是可能是 http 服务,或者 https 的证书是自签名的就会出现这个问题。
我从如下三种运行时来说明如何解决这个问题;我们以要登录 test.registry.com 为例。
Docker¶
在 /etc/docker/daemon.json 文件中加入如下配置:
修改之后重启 docker 即可,重启命令为:systemctl restart docker
containerd¶
containerd 配置非安全仓库有两种方法,一种是从 1.4 版本之后引入的新方法,一种是之前存在直到 2.0 版本的旧方法。
新方法¶
编辑 /etc/containerd/config.toml 文件中的 config_path 配置项,默认值是 /etc/containerd/certs.d。
在 /etc/containerd/certs.d 目录下创建一个以registry 命名的文件夹,并在其中创建一个 hosts.toml的文件。
如果 registry 是带端口号的也需要运行:
server = "http://test.registry.com"
[host."http://test.registry.com"]
capabilities = ["pull", "resolve", "push"]
skip_verify = true
配置后不用重启,可以直接使用。
旧方法¶
在 /etc/containerd/config.toml 文件中加入如下的配置:
[plugins."io.containerd.grpc.v1.cri".registry.configs."test.registry.com".tls]
insecure_skip_verify = true
配置之后需要重启 containerd,重启命令为:systemctl restart containerd。
CRI-O¶
修改 /etc/crio/crio.conf 配置文件:
重启 crio: systemctl restart crio。