无法从Jenkins登录到私有Docker注册表

时间:2018-12-29 07:01:42

标签: docker jenkins kubernetes

我正在尝试使用Jenkins来构建docker镜像并将其推送到私有注册表。但是,在尝试docker login命令时,出现此错误:

http: server gave HTTP response to HTTPS client

我知道可能会发生这种情况,因为未将私有注册表添加为不安全的注册表。但是,如何在CI管道中解决此问题?

Jenkins是在Kubernetes集群上设置的,我正在尝试自动在集群上部署应用程序。

1 个答案:

答案 0 :(得分:1)

这与Jenkins CI管道或Kubernetes无关。除非按照以下任一步骤进行配置,否则Jenkins将无法推送您的图片

您在这里有两个选择

1)配置您的Docker客户端以通过HTTPS使用安全注册表。这将包括设置自签名证书或从您本地的证书颁发机构获取证书。

2)第二种解决方案是在未加密的HTTP连接上使用注册表。  因此,如果您在kubernetes上运行docker。您将必须在daemon.json中配置/etc/docker/daemon.json文件。

PS:该文件可能不存在。您将必须创建它。

然后添加以下内容。确保您更改网址以匹配您的Docker注册表

{
  "insecure-registries" : ["myregistrydomain.com:5000"]
}

然后根据群集上安装的Linux发行版的版本,使用systemctl restart dockeretc/init.d/docker restart重新启动Docker

如果您有任何疑问,请告诉我