使用Harbor构建Docker私有镜像仓库

it2024-07-11  74

文章目录

1 安装docker-compose2 给docker配置国内加速镜像3 启动docker4 从GitHub上下载Harbor源码包5 按照GitHub官方readme配置安装Harbor6 安装报错,如何处理7 安装成功,进入界面构建私有仓库8 登录问题:docker login 出现问题,如何解决9 将本地镜像上传至Harbor私有仓库10 使用https加密私有仓库

1 安装docker-compose

去github上下载(速度可能稍慢一些,不过也不大):https://github.com/docker/compose/releases 找到想要的版本下载: 给docker-compose执行权限:

2 给docker配置国内加速镜像

就是创建个/etc/docker/daemon文件并写入加速地址。

3 启动docker

4 从GitHub上下载Harbor源码包

上GitHub呗,要啥有啥。 进入读readme,看怎么用。 下载harbor源码包: Offline版后面就不会再用docker拉去资源了,不然感觉麻烦,所以我下这个。

5 按照GitHub官方readme配置安装Harbor

点击上面的安装配置教程,进入后找到:

这里是必要配置参数,其实我看了下,就改一下hostname就行,改成我们的docker宿主机ip,我这里是用的虚拟机,所以是虚拟机的ip,该成域名也可以,但需要配置本地域名解析:/etc/hosts 我这里把我虚拟机的ip加了个域名:www.macrunning.org.

其他的配置不用改,对了,上面修改的配置文件是解压后的harbor目录下的:harbor.yml 其实readme配置也写了,仔细看一下就找到了。

6 安装报错,如何处理

./install.sh 开始安装,但是我这里报错了: 其实就是我之前的一个容器名也叫nginx,冲突了,而我们的这个harbor也是部署在Nginx上的,所以需要创建Nginx容器,那么我就把这个之前的容器删掉就行。

7 安装成功,进入界面构建私有仓库

再次安装:默认再次安装会先清除之前的容器,所以我们不用手动清除。

出现这个说明安装成功。 访问一下web界面: 登录名和密码默认是admin和Harbor12345 ,这个配置文件中也写了,我没改,用的默认的。 创建一个新项目:

8 登录问题:docker login 出现问题,如何解决

因为harbor默认是以443端口认证的,所以我们需要修改一下daemon.json就可以,官方文档也说了: 所以,修改daemon.json,改为http登录。

{ "registry-mirrors": ["https://pkfo3lsr.mirror.aliyuncs.com"], "insecure-registries": ["http://www.macrunning.org"] }

9 将本地镜像上传至Harbor私有仓库

查看本地镜像: 给镜像打标签tag: 注意格式 你的私有仓库域名/你的私有仓库名/上传后的命名,GitHub有说明: Ok,到这里我们就构建私有仓库成功!

10 使用https加密私有仓库

首先,生成ssl证书 [root@server2 ~]# mkdir certs [root@server2 ~]# cd certs/ [root@server2 ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/mac.org.key -x509 -days 365 -out certs/mac.org.crt

注意,这里要写自己的域名。

创建证书存放目录(/etc/docker/cert.d/mac.org)并且将生成的证书导入该目录 [root@server2 docker]# mkdir -p certs.d/mac.org [root@server2 docker]# cd certs.d/mac.org/ [root@server2 mac.org]# ls [root@server2 mac.org]# cp /root/certs/mac.org.crt . [root@server2 mac.org]# ls mac.org.crt 添加域名解析 vim /etc/hosts 写入: 172.25.66.2 server2 www.macrunning.org mac.org 进入harbor目录,修改配置文件harbor.yml 注释掉http,修改https相关选项,写入你的证书和key的位置: https: # https port for harbor, default is 443 port: 443 # The path of cert and key files for nginx certificate: /root/certs/mac.org.crt private_key: /root/certs/mac.org.key

重新加载harbor [root@server2 harbor]# ./install.sh

测试登录harbor仓库: [root@server2 harbor]# docker login mac.org Username: admin Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded [root@server2 har 查看本地镜像,进行tag,然后上传push [root@server2 harbor]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx v1 0ae556b865d9 2 days ago 374MB www.macrunning.org/myproject/nginx 1.16 0ae556b865d9 2 days ago 374MB busybox latest db8ee88ad75f 2 weeks ago 1.22MB [root@server2 harbor]# docker tag busybox:latest mac.org/myproject/busybox [root@server2 harbor]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx v1 0ae556b865d9 2 days ago 374MB www.macrunning.org/myproject/nginx 1.16 0ae556b865d9 2 days ago 374MB busybox latest db8ee88ad75f 2 weeks ago 1.22MB mac.org/myproject/busybox latest db8ee88ad75f 2 weeks ago 1.22MB [root@server2 harbor]# docker push mac.org/myproject/busybox The push refers to repository [mac.org/myproject/busybox] 0d315111b484: Pushed latest: digest: sha256:895ab622e92e18d6b461d671081757af7dbaa3b00e3e28e12505af7817f73649 size: 527 在harbor网站进行查看,是否已经成功上传
最新回复(0)