docker配置连接harbor私有仓库

2023-12-14 12:36:38

一、前言

? ? 以下分为两种情况说明docker对harbor私有仓库的访问配置,一种是harbor使用自建证书配置https,一种是使用公有证书配置https

二、docker配置

? ? ?harbor使用自建证书的情况

? ? ?使用自建证书对harbor进行https配置,docker会将该仓库识别成不安全仓库,从该仓库中拉去取镜像或者推送镜像时会报错,即使使用浏览器访问该harbor也是提示不安全的连接,所以需要在docker的daemon.json文件中配置信任该不安全仓库后,才能从该仓库拉取镜像

? ? ?vi /etc/docker/daemon.json

{
 "insecure-registries": ["harbor.apex.com"]    #信任不安全仓库配置
}

? ? 配置daemon.json后还并不能正常访问,这时使用docker访问harbor仓库时会报证书验证的错误,因为还需要在docker这边配置harbor的证书才能正常的使用https访问harbor仓库,以下是没在docker配置证书时的报错信息

?关于docker访问harbor https的配置在harbor官方中也有说明和配置:Harbor docs | Configure HTTPS Access to Harbor

? 为docker配置证书

? 创建存放证书的路径,最后的目录一定要改为自己的域名

? mkdir -p??/etc/docker/certs.d/harbor.apex.com/

? 将配置harbor时的证书拷贝到该目录下,然后再使用ca证书生成一个cert证书

? cd?/etc/docker/certs.d/harbor.apex.com/

??openssl x509 -inform PEM -in harbor.crt -out harbor.cert

? 该目录下一共有三个证书harbor.crt、harbor.key、harbor.cert

? 重启docker

? systemctl restart docker

? 再次访问验证就不会再出现证书的报错问题

??harbor使用公有证书的情况

? 使用公有证书配置harbor后,docker访问harbor仓库不会出现不安全仓库的提示,使用浏览器访问也不会提示不安全的连接,所以不用再配置daemon.json文件信任该仓库,但是还是需要对docker进行证书的配置,不然还是会提示证书报错,我这里使用的是阿里云的ssl公有证书

创建docker的存放公钥目录

?mkdir -p??/etc/docker/certs.d/harbor.ylbeijing.com/

将配置harbor的阿里云ssl证书放到该目录下

cd?/etc/docker/certs.d/harbor.ylbeijing.com/ && ls

阿里云的ssl证书一共有三个,我这边都放到了docker的配置目录下,但是生成cert证书需要使用阿里云证书里的公钥证书去生成

openssl x509 -inform PEM -in harbor.ylbeijing.com_public.crt -out harbor.ylbeijing.com.cert

生成完cert证书后重启docker即可正常访问私有仓库

使用容器版docker必须要用公钥配置的harbor,不然容器版的docker是没法配置daemon.json的,使用公钥后直接把证书生成后拷贝挂载到容器版的docker中,就可以正常拉镜像

文章来源:https://blog.csdn.net/ApexPredator/article/details/134904499
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。