1. 闲不住的人首页
  2. Docker

Docker 私有仓库 Harbor 安装部署

在实际应用 Kubernetes 或者 Docker 容器,往往会在公司内部构建自己的 Docker Registry,这样可以提升下载镜像的速度还可以节约带宽、镜像私有化等一些好处。

本次是采用 Harbor offline installer 方式安装

1. 安装环境说明

  • OS 版本:CentOS 7.6.1810
  • Docker 版本:最新版本
  • Docker Compose 版本:最新版本
  • Harbor 版本:v1.7.5

2. 安装 Docker

root@harbor:~ # sudo yum remove docker docker-common docker-selinux docker-engine
root@harbor:~ # sudo yum install -y yum-utils device-mapper-persistent-data lvm2
root@harbor:~ # sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
root@harbor:~ # sudo yum -y install docker-ce

3. 安装 Docker Compose

root@harbor:~ # sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
root@harbor:~ # sudo chmod +x /usr/local/bin/docker-compose
root@harbor:~ # sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
root@harbor:~ # docker-compose version
docker-compose version 1.24.0, build 0aa59064
docker-py version: 3.7.2
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

4. 安装 Harbor

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

4.1 获取 Harbor 离线安装包

访问 https://github.com/goharbor/harbor/releases 获取 v1.7.5 版的 Harbor offline installer 然后解压

root@harbor:~ # tar xf harbor-offline-installer-v1.7.5.tgz -C /usr/local/

4.2 修改 Harbor 配置文件

Harbor 的配置文件位于程序安装目录内名为 harbor.cfg ,在修改其配置文件前,先来了解几个参数的作用:

# 配置访问 harbor dashboard 的 IP 地址或域名
hostname = reg.mydomain.com
# 协议默认是 http 生产中建议使用 https
ui_url_protocol = http
# 如果 ui_url_protocol = https 那么下面两个参数需要指明安全证书文件的路径
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
# harbor 管理员的默认密码,建议修改为其它密码
harbor_admin_password = Harbor12345

了解了以上参数的作用后,下面我们来实际修改 harbor.cfg

root@harbor:~ # cd /usr/local/harbor/
root@harbor:/usr/local/harbor # vim harbor.cfg
# 主要修改以下几个参数
hostname = harbor.opsbj.com
ui_url_protocol = https
ssl_cert = /usr/local/harbor/cert/harbor.opsbj.com.crt
ssl_cert_key = /usr/local/harbor/cert/harbor.opsbj.com.key
harbor_admin_password = Harbor@2019

准备证书,我这里是申请的阿里云的免费 SSL 证书,申请证书,然后下载到本地,将 .pem 结尾的证书改为 .crt 结尾

root@harbor:/usr/local/harbor # mkdir cert
root@harbor:/usr/local/harbor # cd cert/
root@harbor:/usr/local/harbor/cert # mv 2122003_harbor.opsbj.com.key harbor.opsbj.com.key
root@harbor:/usr/local/harbor/cert # mv 2122003_harbor.opsbj.com.pem harbor.opsbj.com.crt
root@harbor:/usr/local/harbor/cert # ls
harbor.opsbj.com.crt  harbor.opsbj.com.key

4.3 运行 install.sh

Harbor 程序包解压后的文件夹内,有个 harbor.v1.7.5.tar.gz ,这里是harbor 所用的所有 docker 镜像,运行 install.sh 会将镜像导入到本地。

root@harbor:/usr/local/harbor/cert # cd /usr/local/harbor/
root@harbor:/usr/local/harbor # ./install.sh

运行成功后会看到如下输出:

✔ ----Harbor has been installed and started successfully.----

4.4 浏览器中访问 Harbor

默认管理员用户 admin 密码是 harbor.cfg 中定义的密码

登录harbor
登录harbor

登录成功后进入控制台

Harbor控制台

4.5 Harbor 服务的启动与关闭

在 harbor 程序目录使用 docker-compose 命令执行 stop 或 start

root@harbor:~ # cd /usr/local/harbor/
root@harbor:/usr/local/harbor # docker-compose stop
Stopping nginx              ... done
Stopping harbor-jobservice  ... done
Stopping harbor-portal      ... done
Stopping harbor-core        ... done
Stopping harbor-adminserver ... done
Stopping registry           ... done
Stopping registryctl        ... done
Stopping redis              ... done
Stopping harbor-db          ... done
Stopping harbor-log         ... done
root@harbor:/usr/local/harbor # docker-compose start
Starting log         ... done
Starting registry    ... done
Starting registryctl ... done
Starting postgresql  ... done
Starting adminserver ... done
Starting core        ... done
Starting portal      ... done
Starting redis       ... done
Starting jobservice  ... done
Starting proxy       ... done

5. Harbor 基础使用

5.1 创建用户

用户管理 –> 创建用户

harbor创建用户
harbor创建用户

5.2 创建项目

Harbor 里的项目,我觉得可以理解为 docker hub 上的『用户』,每个项目下可以有多个镜像仓库,比如在 docker hub 上我的镜像仓库如下:

  • enzhige/nginx
  • enzhige/tomcat
docker hub镜像仓库示例
docker hub镜像仓库示例

而对应到 Harbor 里,那么项目名就是 enzhige 下面我使用 enzhige 这个用户来创建一个项目,并上传镜像测试

harbor创建项目
harbor创建项目

要推送镜像到我们的私有仓库,docker 镜像的命名要使用如下方式:

registry_address[:port]/project/repository:tag

例如:

harbor.opsbj.com/enzhige/nginx:1.14.1
harbor.opsbj.com/enzhige/tomcat:8.5.15
  • 举例演示:推送镜像到 Harbor 仓库

1、登录私有仓库

root@harbor:~ # docker login harbor.opsbj.com -u enzhige
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

2、推送镜像

root@harbor:~ # docker push harbor.opsbj.com/enzhige/nginx:1.14.1
root@harbor:~ # docker push harbor.opsbj.com/enzhige/tomcat:8.5.15

3、控制台查看镜像

验证harbor上传镜像
验证harbor上传镜像

如果觉得文章不错,不妨给个『打赏』写作不易,各位的支持,能激发和鼓励我更大的写作热情。谢谢

原创文章,作者:恩志,如若转载,请注明出处:https://www.xbzdr.com/615.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:510749025@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code