项目环境搭建【Docker+k8s】六 || 部署Docker私有仓库harbor

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项目

alt 图片1

  • 切换到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的镜像
    alt 图片2

猜你喜欢

转载自www.cnblogs.com/kevin-ying/p/12345849.html