前言

公司技术体系逐步基于DDD领域驱动设计结合DevOps,最终在技术实现中转向于微服务+k8s的体系。

以Harbor作为公司镜像私服~

再此,就记录一下操作过程,分享给道友,避免浪费时间。

享受优质模板,进行阅读——点击

Harbor

harbor git 地址

优点:

  • 本身自代 docker 私有仓库

  • 支持基于角色的权限管理

  • 支持LDAP认证:Harbor的用户授权可以使用已经存在的用户。

  • 图形化用户界面

  • 审计管理:所有这怒地镜像仓库的错都可以被记录追溯,用于审计管理

  • 镜像删除和垃圾回收:image可以被删除并且回收image占用的空间。

  • 简单的部署功能:harbor提供了online、offline安装,此外还提供了virtualappliance安装

说白了,就是好,等等好像是公司要用因此不能不会~

安装

1、前置条件

(1)需要安装docker

#安装一些必要的系统工具
yum -y install yum-utils device-mapper-persistent-data lvm2

#添加docker镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装docker-ce
yum -y list docker-ce.x86_64 --showduplicates | grep stable | sort -r
yum -y install docker-ce-18.03.1.ce-1.el7.centos

#开启docker服务
systemctl start docker

#查看docker版本
docker version

(2)需要安装docker-compose

yum install docker-compose

2、下载安装包

直接选择编译好的包

harbor-offline-installer-v2.4.2.tgz

harbor-offline-installer-v2.5.0-rc4.tgz

GitHub下载太慢?有教程~点击

image-20220410110922088

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

下载成功,并解压

tar -zxvf harbor-offline-installer-v2.5.0-rc4.tgz

进入解压的目录,并 ll

image-20220410115207118

harbor.v2.5.0.tar.gz 里就是 Harbor 用到的镜像

3、编辑yml文件

(1)解压完成后在当前目录生成harbor目录,复制和修改harbor目录下的harbor.yml

cp harbor.yml.tmpl harbor.yml

(2)注释掉htps的配置内容,配置htp相关的参数,主要是hostnameport,其他都可以不用动。

image-20220410115849673

\# vim harbor.yml
hostname: 192.168.239.11

\# htp related config
htp:
\# port for htp, default is 80. If htps enabled, this port will redirect to htps port
	port: 80

温馨提示:https需注掉,否则会在启动时失败

(3)运行

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

运行 ./install.sh

(4)启动

安装完成后在本地生成docker-compose.yml文件,此时可以启动harbor服务;

docker-compose up -d

image-20220410121654514

image-20220410121722897

温馨提示:密码配置文件有,默认Harbor12345

(5)登录

初始的默认用户是admin,密码是Harbor12345,登录成功:

image-20220410122140743

镜像上传与拉取

1、准备

(1)万物皆hello-world,准备hello-world镜像

docker pull hello-world

image-20220410122317903

(2)新增项目

image-20220410123943317

image-20220410124024904

2、登录

docker login 192.168.239.11:80
user:admin
password:
Login Succeeded

image-20220410123705910

3、标记

在项目中标记需要上传的镜像

docker tag hello-world 192.168.239.11:80/test1/hello-world:1.0

image-20220410124100390

温馨提示:端口被忘带了,这不是浏览器!!!

4、推送

将标记好的镜像,推送镜像到当前项目

docker push 192.168.239.11:80/test1/hello-world:1.0

image-20220410124138859

5、拉取

docker pull 192.168.239.11:80/test1/hello-world:1.0

image-20220410124754586

温馨提示:拉取之前记得login

其他常见问题

当进行login时,会出现如下报错:

image-20220410122718422

此时,需要将私服的htp地址配置到docker的不安全register中

\# vim /etc/docker/daemon.json
{
"insecure-registries": ["192.168.239.11:80"]
}

温馨提示:端口别忘带了,这不是浏览器!!!

重启docker服务后可以正常login进docker私服

重启docker服务后可以正常login进docker私服

重启docker服务后可以正常login进docker私服

systemctl daemon-reload && systemctl restart docker

image-20220410123705910

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐