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

本文详细介绍如何使用Docker及Docker Compose搭建Harbor私有仓库,包括配置国内加速镜像、解决安装过程中的常见错误、登录问题、上传本地镜像至私有仓库以及使用HTTPS加密仓库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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网站进行查看,是否已经成功上传
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值