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

文章目录

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

1 安装docker-compose

去github上下载(速度可能稍慢一些,不过也不大):https://github.com/docker/compose/releases
找到想要的版本下载:
使用Harbor构建Docker私有镜像仓库_第1张图片
使用Harbor构建Docker私有镜像仓库_第2张图片
给docker-compose执行权限:

使用Harbor构建Docker私有镜像仓库_第3张图片
使用Harbor构建Docker私有镜像仓库_第4张图片

2 给docker配置国内加速镜像

使用Harbor构建Docker私有镜像仓库_第5张图片
就是创建个/etc/docker/daemon文件并写入加速地址。

3 启动docker

使用Harbor构建Docker私有镜像仓库_第6张图片

4 从GitHub上下载Harbor源码包

上GitHub呗,要啥有啥。
使用Harbor构建Docker私有镜像仓库_第7张图片
进入读readme,看怎么用。
使用Harbor构建Docker私有镜像仓库_第8张图片
下载harbor源码包:
使用Harbor构建Docker私有镜像仓库_第9张图片
Offline版后面就不会再用docker拉去资源了,不然感觉麻烦,所以我下这个。

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

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

使用Harbor构建Docker私有镜像仓库_第10张图片
在这里插入图片描述
这里是必要配置参数,其实我看了下,就改一下hostname就行,改成我们的docker宿主机ip,我这里是用的虚拟机,所以是虚拟机的ip,该成域名也可以,但需要配置本地域名解析:/etc/hosts 我这里把我虚拟机的ip加了个域名:www.macrunning.org.

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

6 安装报错,如何处理

./install.sh
开始安装,但是我这里报错了:
使用Harbor构建Docker私有镜像仓库_第11张图片
其实就是我之前的一个容器名也叫nginx,冲突了,而我们的这个harbor也是部署在Nginx上的,所以需要创建Nginx容器,那么我就把这个之前的容器删掉就行。

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

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

使用Harbor构建Docker私有镜像仓库_第12张图片
出现这个说明安装成功。
访问一下web界面:
使用Harbor构建Docker私有镜像仓库_第13张图片
登录名和密码默认是admin和Harbor12345 ,这个配置文件中也写了,我没改,用的默认的。
在这里插入图片描述
创建一个新项目:

使用Harbor构建Docker私有镜像仓库_第14张图片
使用Harbor构建Docker私有镜像仓库_第15张图片

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

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

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

使用Harbor构建Docker私有镜像仓库_第16张图片

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

查看本地镜像:
使用Harbor构建Docker私有镜像仓库_第17张图片
给镜像打标签tag:
使用Harbor构建Docker私有镜像仓库_第18张图片
注意格式 你的私有仓库域名/你的私有仓库名/上传后的命名,GitHub有说明:
在这里插入图片描述
使用Harbor构建Docker私有镜像仓库_第19张图片
使用Harbor构建Docker私有镜像仓库_第20张图片
使用Harbor构建Docker私有镜像仓库_第21张图片
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

使用Harbor构建Docker私有镜像仓库_第22张图片

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

  • 创建证书存放目录(/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构建Docker私有镜像仓库_第23张图片

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

使用Harbor构建Docker私有镜像仓库_第24张图片

  • 测试登录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网站进行查看,是否已经成功上传
    使用Harbor构建Docker私有镜像仓库_第25张图片
    使用Harbor构建Docker私有镜像仓库_第26张图片

你可能感兴趣的:(企业级运维)