前两天测试服务docker化并k8s布署时,出于方便,使用了docker hub。由于我们的代码是要放到镜像里的,通过运行容器,便能获取我们的全部代码,风险很大。所以我们决定进行私有化的镜像部署。


经过调研,决定使用harbor这个开源项目。


项目介绍


​harbor git 地址​


版本 harbor-offline-installer-v2.1.0.tgz


 


优点:


本身自代 docker 私有仓库


支持基于角色的权限管理


支持 LDAP


安装


harbor支持k8s的helm安装和本地安装,我这次先择的安装方式是本地安装。


我的运行环境是 Centos7.2。


0. 前置条件


需要安装docker并运行




yum install docker # 安装docker


systemctl start docker # 运行docker服务


需要安装docker-compose



yum install docker-compose


1. 下载安装包



直接选择编译好的包



这里有两个包Harbor offline installer 和 Harbor online installer,两者的区别的是 Harbor offline installer 里就包含的 Harbor 需要使用的镜像文件。


下载成功,并解压



cd /usr/local/src


 


wget ​​https://github.com/goharbor/harbor/releases/download/v2.1.0/harbor-offline-installer-v2.1.0.tgz​


 


tar -zxvf harbor-offline-installer-v2.1.0.tgz



进入解压的目录,并 ls



harbor.v1.7.1.tar.gz 里就是 Harbor 用到的镜像


2. 编辑配置文件 


 vim harbor.yml


 




 


 


hostname: 192.168.33.70  #本机ip


customize_crt: false  #可以http访问 


    


为了可以http访问 需要编辑


vi /etc/docker/daemon.json


 



{


"registry-mirrors": ["https://a4fyjv0u.mirror.aliyuncs.com"],


"insecure-registries": [


    "192.168.33.70"


  ]


}


重启docker 



systemctl restart docker


 


docker-compose restart


3. 运行


修改完配置文件后,运行 ./prepare,它会哪所配置文件修改一文件


运行 ./install.sh



运行成功,docker ps 查看,可以看到服务已经起来了。


如果报错https那把相关配置注释即可



# https related config


#https:


  # https port for harbor, default is 443


# port: 443


  # The path of cert and key files for nginx


  #certificate: /your/certificate/path


  #private_key: /your/private/key/path



4. 常用管理命令


停止服务: docker-compose stop


开始服务: docker-compose start


GUIl界面使用

1. 新建项目



新建一个项目,命名为 ainirobot,并设置访问级别为公开。



这里的项目就是一私有化的Docker镜像仓库。


上传镜像

1. 修改Docker配置



docker 默认是按 https 请求的,由于我搭的私有库是 http 的,所以需要修改 docker 配置,将信任的库的地址写上


修改文件 /etc/docker/daemon.json




{


"insecure-registries": [


“192.168.33.70"


]


}


然后重启docker



systemctl restart docker


2. 制作镜像


将 mongo 制作成一个私有镜像, mongo 为我之前从 docker hub 上拉取的镜像。



docker tag mongo A.B.C.D/ainirobot/nebulae_mongo:0.0.1


3. 上传

1. 先登陆私有库



docker login A.B.C.D


2. PUSH



docker push A.B.C.D/ainirobot/nebulae_mongo:0.0.1


3. 结果



从后台已经能看到这个镜像了



推荐


完成了私有库的搭建后,可以再安装一个k8s集群后台管理系统(wayne系统介绍)。