文章目录
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网站进行查看,是否已经成功上传