1、部署主机
- YN101-100.host.com
2、官方github地址下载二进制包并安装
下载包统一存放位置
cd /opt/src
解压
tar xf harbor-offline-installer-v1.8.5.tgz -C /opt/
重命名,做版本标记
mv harbor/ harbor-v1.8.5
创建软连接,管理不同版本的软件包,方便以后升级
[root@yn101-100 opt]# ln -s /opt/harbor-v1.8.5/ /opt/harbor
[root@yn101-100 opt]# ll
total 0
drwxr-xr-x 2 root root 71 Feb 16 12:53 certs
drwx--x--x 4 root root 28 Feb 16 13:25 containerd
lrwxrwxrwx 1 root root 19 Feb 16 14:27 harbor -> /opt/harbor-v1.8.5/
drwxr-xr-x 2 root root 100 Feb 16 14:24 harbor-v1.8.5
drwxr-xr-x 2 root root 49 Feb 16 14:23 src
3、配置文件修改
进入解压目录
cd /opt/harbor
#创建数据存储文件夹和日志文件夹
mkdir -p /data/harbor/logs
修改配置文件harbor.yml
vi harbor.yml
#修改内容如下:
hostname: reg.mydomain.com-->hostname: harbor.yn.com
http.port: 80-->port: 180
harbor_admin_password: Harbor12345-->harbor_admin_password: keivn
data_volume: /data-->data_volume: /data/harbor
log.location: /var/log/harbor-->log.location: /data/harbor/logs
4、启动harbor
安装docker-compose,harbor依赖docker-compose做单机编排
yum install docker-compose -y
#查看安装版本
[root@yn101-100 harbor]# rpm -qa docker-compose
docker-compose-1.18.0-4.el7.noarch
运行harbor,启动可以看到harbor依赖docker和docker-compose
[root@yn101-100 harbor]# cd /opt/harbor
[root@yn101-100 harbor]# ./install.sh
[Step 0]: checking installation environment ...
Note: docker version: 19.03.6
Note: docker-compose version: 1.18.0
5、nginx反向代理
不能直接使用配置的180端口进行访问,使用nginx做反向代理
yum install nginx -y
新建nginx配置文件
vi /etc/nginx/conf.d/harbor.yn.com.conf
#配置文件内容如下:
server {
listen 80;
server_name harbor.yn.com;
client_max_body_size 1000m;
location / {
proxy_pass http://127.0.0.1:180;
}
}
启动nginx
[root@yn101-100 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl start nginx
systemctl enable nginx
6、配置harbor域名DNS解析
切换到DNS服务器YN101-21.host.com,业务域数据文件添加解析记录
vi /var/named/yn.com.zone
#前滚一个序号 :系列号(日期+序号),序号每次修改加1
2020021501-->2020021602
#添加一条解析记录
harbor A 192.168.101.100
重启并测试
systemctl restart named
#测试
[root@yn101-21 ~]# dig -t A harbor.yn.com +short
192.168.101.100
#浏览器访问
harbor.yn.com
7、镜像存储测试
进入harbor管理界面,新建一个public项目
切换到DNS服务器YN101-100.host.com,推送镜像
#下载镜像测试
docker pull nginx:1.7.9==>docker pull docker.io/library/nginx:1.7.9
docker images | grep 1.7.9
#打一个镜像tag
docker tag 84581e99d807 harbor.yn.com/public/nginx:v1.7.9
#推送到仓库,报错requested access to the resource is denied,原因为没有登录
[root@yn101-100 data]# docker push harbor.yn.com/public/nginx:v1.7.9
#输出如下
The push refers to repository [harbor.yn.com/public/nginx]
5f70bf18a086: Preparing
4b26ab29a475: Preparing
ccb1d68e3fb7: Preparing
e387107e2065: Preparing
63bf84221cce: Preparing
e02dce553481: Waiting
dea2e4984e29: Waiting
denied: requested access to the resource is denied
登录harbor推送镜像
#登录
docker login harbor.yn.com
#再次推送
[root@yn101-100 data]# docker push harbor.yn.com/public/nginx:v1.7.9
#输出如下
The push refers to repository [harbor.yn.com/public/nginx]
5f70bf18a086: Pushed
4b26ab29a475: Pushed
ccb1d68e3fb7: Pushed
e387107e2065: Pushed
63bf84221cce: Pushed
e02dce553481: Pushed
dea2e4984e29: Pushed
1.7.9: digest: sha256:b1f5935eb2e9e2ae89c0b3e2e148c19068d91ca502e857052f14db230443e4c2 size: 3012
查看harbor的public项目里面已经有nginx1.7.9的镜像