harbor镜像仓库搭建配置 – 记忆角落

harbor镜像仓库搭建配置

/ 0评 / 0

harbor镜像仓库搭建配置

1.安装docker-compose(已经安装省略)

1. 下载

在 Linux 上的也安装十分简单,从 官方 GitHub Release 处直接下载编译好的二进制文件即可。

例如,在 Linux 64 位系统上直接下载对应的二进制包。

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 国内用户可以使用以下两种方式加快下载
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.授权并做软连接到/usr/bin

sudo chmod +x /usr/local/bin/docker-compose

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:
[root@gzbsc001 bin]# docker-compose -version
docker-compose version 1.29.2, build 5becea4c

3.bash 补全提示命令

$ curl -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

2.Harbor 安装:

Harbor 官方地址:https://github.com/goharbor/harbor/releases

1、下载,解压软件包:

wget https://github.com/goharbor/harbor/releases/download/v1.10.9/harbor-offline-installer-v1.10.9.tgz

tar -zxvf harbor-offline-installer-v1.10.9.tgz 

cp -r harbor /usr/local/

2.修改harbor.yml文件

#修改以下内容

hostname: hub.cmcc.com #目标主机的主机名,例如,192.168.1.10或reg.yourdomain.com

http:
  # port for http, default is 80
  port: 28080 #因为本机已经有80

https:
  # https port for harbor, default is 443
  port: 443 #因为本机443 没占用
  certificate: /usr/local/harbor/cert/server.crt #需要生成的证书
  private_key: /usr/local/harbor/cert/server.key #需要生成的证书

harbor_admin_password = harbor12345   #修改harbor的admin用户的密码

data_volume: /harbor/data #修改harbor存储位置

3. 创建 https 证书以及配置相关目录

3.1创建根证书私钥 server.key

openssl genrsa -des3 -out server.key 2048

回车,输入密码,确认密码

3.2 利用私钥,创建证书请求文件(CSR)

openssl req -new -key server.key -out server.csr

回车,输入密码,国家:CN,省份/city:BJ,域名:hub.cmcc.com (这里的域名等于harbor.yml的hostname)...后面的我忘记了....

3.3 备份,删除密码(因为nginx不支持带密码的证书)

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key

3.4生成自签名证书

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

到这里我们的证书就已经创建成功了.(server.key 和 server.crt) 可以直接用到https的server中了.

3.运行脚本进行安装

./install.sh

4.访问测试

设置/etc/hosts

echo "192.168.31.101 hub.cmcc.com" >> /etc/hosts

https://hub.cmcc.com的管理员门户(将hub.cmcc.com更改为您的主机名harbor.cfg)。

请注意,默认管理员用户名/密码为admin/Harbor12345(我已经修改成:harbor12345),此密码仅在Harbor首次启动时生效。之后修改也无效啦..将忽略此设置

上传镜像进行上传测试

4.1 修改指定镜像仓库地址 (信任关系)

vim /etc/docker/daemon.json 

{
  "registry-mirrors": [
  "https://hub-mirror.c.163.com",
  "https://mirror.baidubce.com"
  ],
  "insecure-registries": ["https://hub.cmcc.com"]
}

在应用docker越来越深入的时候,必然涉及这部分的内容。即要从国内快速下载镜像,又需要将一些镜像上传到公司内部(离线)的非安全仓库时,就派上用场了。

重新加载配置文件:systemctl daemon-reload

启动docker:systemctl restart docker

4.2下载测试镜像

docker pull hello-world

4.3 给镜像重新打标签

docker tag hello-world hub.cmcc.com/library/hello-world:latest

4.4 登录进行上传

docker login https://hub.cmcc.com

docker push hub.cmcc.com/library/hello-world:latest

[root@gzbsc001 harbor]# docker login https://hub.cmcc.com
Username: glj
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

[root@gzbsc001 harbor]# docker push hub.cmcc.com/library/hello-world:latest
The push refers to repository [hub.cmcc.com/library/hello-world]
e07ee1baac5f: Pushed 
latest: digest: sha256:f54a58bc1aac5ea1a25d796ae155dc228b3f0e11d046ae276b39c4bf2f13d8c4 size: 525
[root@gzbsc001 harbor]# 

harbor.yml 参数描述

必选参数

描述
hostname 目标主机的主机名,用于访问Portal和注册表服务。 它应该是目标计算机的IP地址或完全限定的域名(FQDN),例如,192.168.1.10或reg.yourdomain.com。不要使用localhost或127.0.0.1作为主机名 - 外部客户端需要访问注册表服务!
data_volume 存储数据的位置
harbor_admin_password 管理员的初始密码。此密码仅在Harbor首次启动时生效。之后,将忽略此设置,并且应在Portal中设置管理员密码。请注意,默认用户名/密码为admin / Harbor12345。
database
password 用于db_auth的PostgreSQL数据库的root密码。更改此密码以用于任何生产用途!
-
jobservice
max_job_workers 作业服务中的最大复制工作者数。对于每个映像复制作业,工作程序将存储库的所有标记同步到远程目标。增加此数量可以在系统中执行更多并发复制作业。但是,由于每个工作者都消耗一定量的网络/ CPU / IO资源,请根据主机的硬件资源仔细选择该属性的值。
-
log
level 日志级别,选项是调试,信息,警告,错误,致命
rotate_count 日志文件在被删除之前被轮换为log_rotate_count次。如果count为0,则删除
log_rotate_size 仅当日志文件大于log_rotate_size字节时才会轮换日志文件。如果大小后跟k,则假定大小以千字节为单位。如果使用M,则大小以兆字节为单位,如果使用G,则大小以千兆字节为单位。尺寸100,尺寸100k,尺寸100M和尺寸100G都是有效的
location 存储中日志的目录

可选参数

描述
http
port http的端口号
-
https
port https的端口号
certificate SSL证书的路径,仅在协议设置为https时应用
private_key SSL密钥的路径,仅在协议设置为https时应用
-
external_url 如果使用外部代理,则启用它,当启用时,将不再使用主机名
-
clair
updaters_interval clair更新程序的间隔,单位为小时,设置为0以禁用更新程序
http_proxy 为Clair配置http代理,例如http://my.proxy.com:3128
https_proxy 为Clair配置https代理,例如http://my.proxy.com:3128
no_proxy 没有为Clair配置代理,例如127.0.0.1,localhost,core,registry
-
chart
absolute_url 如果设置为启用图表将使用绝对网址,否则将其设置为禁用,图表将使用相对网址
-
external_database 外部数据库配置,目前只支持POSTGRES
harbor 核心数据库配置
host 核心数据库的主机名
port 核心数据库端口
db_name 港口核心数据库的数据库名称
username 用于连接港口核心数据库的用户名
password 港口核心数据库的密码
ssl_mode 启用ssl模式
- -
clair clair的数据库配置
host clair数据库的主机名
port clair数据库的端口
db_name clair数据库的数据库名称
username 用于连接clair数据库的用户名
password clair数据库的密码
ssl_mode 启用ssl模式
- -
notary_signer 公证人的签名者数据库配置
host 公证签名者数据库的主机名
port 公证签名者数据库的端口
db_name 公证签名者数据库的数据库名称
username 用于连接公证签名者数据库的用户名
password 公证签名者数据库的密码
ssl_mode 启用ssl模式
- -
notary_server
host 公证服务器数据库的主机名
port 公证服务器数据库的端口
db_name 公证服务器数据库的数据库名称
username 用于连接公证服务器数据库的用户名
password 公证服务器数据库的密码
ssl_mode 启用ssl模式
external_redis 配置使用外部redis
host 外部redis的主机
port 外部redis的端口
password 用于连接外部主机的密码
registry_db_index 注册表使用的db索引
jobservice_db_index jobservice的 db索引
chartmuseum_db_index chartmuseum的 db索引

发表评论

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