部署私有docker镜像仓库Harbor

由于我们的代码是要放到镜像里的,通过运行容器,便能获取我们的全部代码,风险很大。所以我们决定进行私有化的镜像部署。

Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库。


1, 安装docker

由于harbor是为docker提供服务的,所以我们事先安装好docker和docker-compose

curl -fsSL https://get.docker.com |bash -s docker --mirror Aliyun
yum install docker-compose.noarch -y
mkdir -p /data/docker/ /etc/docker
//* 下面的harbor.od.com是我这本地的域名,需要自行修改
cat > /etc/docker/daemon.json << EOF
{ 
  "graph":"/data/docker",
  "storage-driver":"overlay2",
  "insecure-registries":["registry.access.redhat.com","quay.io","harbor.od.com"],
  "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],
  "bip":"172.7.90.1/24",
  "exec-opts":["native.cgroupdriver=systemd"],
  "live-restore":true
}
EOF
systemctl start docker

2, 安装harbor

harbor项目地址:https://github.com/goharbor/harbor

//* 我这里使用1.8.6离线安装版
wget https://github.com/goharbor/harbor/releases/download/v1.8.6/harbor-offline-installer-v1.8.6.tgz
//* 解压harbor到/opt目录
tar xf harbor-offline-installer-v1.8.6.tgz -C /opt/
cd /opt/harbor
vim harbor.yml

以下圈住的地方需要根据需要自行更改,注意:端口不要和本地冲突!
Snipaste_2020-03-07_17-45-09.png
修改完harbor.yml文件后,执行install文件
Snipaste_2020-03-07_17-54-14.png
Snipaste_2020-03-07_17-55-41.png


3, 配置nginx反代

[[email protected] harbor]# cat /etc/nginx/conf.d/harbor.conf 
    server {
      listen        80;
      server_name    harbor.od.com;

      client_max_body_size 1000m;
  
    location / {
      proxy_pass http://127.0.0.1:180;
      }
    }
nginx -s reload

本地验证, 出现下面的页面说明部署成功了
Snipaste_2020-03-07_18-00-47.png
账号: admin
密码: 之前配置文件里配置的密码


4, push项目到harbor

登陆进来后创建一个项目
Snipaste_2020-03-07_18-02-58.png

注意:首次push需要身份验证

docker login harbor.od.com
然后输入账号密码认证即可。

在服务器端打个标签,然后push
Snipaste_2020-03-07_18-08-04.png
回到网页查看是否推送成功
bb.gif