docker的企业级仓库管理harbor安装

实验环境

软件:
Centos7.4
harbor-1.2.2
docker version 17.12.0-ce
docker compose 1.17.1
机器IP地址:
172.16.10.65
172.16.10.64

软件下载地址:
docker-compose下载:https://github.com/docker/compose/releases/
harbor下载:https://github.com/vmware/harbor/releases
使用harbor的离线下载包 harbor-offline-installer-v1.2.2.tgz

实践(支持CA加密)

1,解压harbor包

tar xf harbor-offline-installer-v1.2.2.tgz

2,进入文件夹

[root@myregistry home]# ls harbor
ca.crt  docker-compose.clair.yml   harbor_1_1_0_template  LICENSE  yourdomain.com
ca.key  docker-compose.notary.yml  harbor.cfg             NOTICE   yourdomain.com.crt
ca.srl  docker-compose.yml         harbor.v1.2.2.tar.gz   prepare  yourdomain.com.csr
common  extfile.cnf                install.sh             upgrade  yourdomain.com.key
[root@myregistry home]# cd harbor

3,修改配置文件 harbor.cfg

所需参数:
  • host:目标主机的主机名,用于访问用户界面和注册表服务。它应该是目标机器的IP地址或完全限定的域名(FQDN),例如192.168.1.10reg.yourdomain.com不要使用localhost127.0.0.1为主机名 - 注册表服务需要由外部客户端访问!
  • ui_url_protocol:(httphttps,默认为http)用于访问UI和令牌/通知服务的协议。如果公证处于启用状态,则此参数必须为https
  • db_password:用于db_auth的MySQL数据库的根密码。更改此密码以供任何生产使用!
  • max_job_workers :(默认值为3)作业服务中复制工作的最大数量。对于每个映像复制作业,工作人员将存储库的所有标记同步到远程目标。增加这个数字允许系统中有更多的并发复制作业。但是,由于每个工作人员消耗一定数量的网络/ CPU / IO资源,请根据主机的硬件资源,仔细选择此属性的值。
  • customize_crt:(打开关闭,默认打开打开此属性,准备脚本创建私钥和根证书,用于生成/验证注册表令牌。当由外部来源提供密钥和根证书时,将此属性设置为off
  • ssl_cert:SSL证书的路径,仅当协议设置为https时才应用
  • ssl_cert_key:SSL密钥的路径,仅当协议设置为https时才应用
  • secretkey_path:用于在复制策略中加密或解密远程注册表的密码的密钥路径。
  • log_rotate_count:日志文件在被移除之前被轮转log_rotate_count次。如果计数为0,则删除旧版本而不是旋转。
  • log_rotate_size:日志文件只有在长度大于log_rotate_size字节的情况下才会进行旋转。如果大小后面跟着k,则大小假定为千字节。如果使用M,则大小以兆字节为单位;如果使用G,则大小以千兆字节为单位。所以大小100,大小100k,大小100M和大小100G都是有效的。

若只想配置http方式,则对于配置文件只需修改host为域名或者IP地址即可,跳过步骤4

若想配置https访问则继续

4,生成自己的CA证书,

创建您自己的CA证书:

openssl req \
    -newkey rsa:4096 -nodes -sha256 -keyout ca.key \
    -x509 -days 365 -out ca.crt

生成证书签名请求:
如果使用像reg.yourdomain.com这样的FQDN 连接注册表主机,则必须使用reg.yourdomain.com作为CN(通用名称)。否则,如果您使用IP地址连接您的注册表主机,CN可以是任何类似您的名字等等:

  openssl req \
    -newkey rsa:4096 -nodes -sha256 -keyout yourdomain.com.key \
    -out yourdomain.com.csr

生成注册表主机的证书:
如果您使用的是像reg.yourdomain.com这样的FQDN 来连接您的注册表主机,请运行以下命令以生成注册表主机的证书:

  openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out yourdomain.com.crt

如果你使用的是IP,比如172.16.10.65连接你的注册表主机,你可以运行下面的命令:

  echo subjectAltName = IP:172.16.10.65 > extfile.cnf

  openssl x509 -req -days 365 -in yourdomain.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out yourdomain.com.crt

获取crt和key文件之后可以将它们放在特定的目录,名称自拟:

cp yourdomain.com.crt /home/registry/certs/domain.crt
cp yourdomain.com.key /home/registry/certs/domain.crt

编辑harbor.cfg,更新三个参数:

ui_url_protocol = https

ssl_cert = /home/registry/certs/domain.crt 
ssl_cert_key = /home/registry/certs/domain.key

5,执行install.sh程序

[root@myregistry harbor]# ./install.sh

加载过程需要稍等一会。
6,启动harbor,

[root@myregistry harbor]#  docker-compose up -d
WARNING: The Docker Engine you're using is running in swarm mode.

Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.

To deploy your application across the swarm, use `docker stack deploy`.

Creating network "harbor_harbor" with the default driver
Creating harbor-log ... 
Creating harbor-log ... done
Creating harbor-adminserver ... 
Creating harbor-db ... 
Creating registry ... 
Creating harbor-db
Creating harbor-adminserver
Creating harbor-adminserver ... done
Creating harbor-ui ... 
Creating harbor-ui ... done
Creating harbor-jobservice ... 
Creating harbor-jobservice
Creating nginx ... 
Creating nginx ... done

注意

1,修改配置文件和harbor重启
修改配置文件完毕后,为Harbour生成配置文件:

  ./prepare

如果Harbor已经在运行,请停止并删除现有的实例。您的图像数据保留在文件系统中

  docker-compose down  -v 

-v表示删除容器对应的数据卷
最后重启Harbour:

  docker-compose up -d

2,登录方式

  1. 打开浏览器并输入地址,它应该显示Harbor的用户界面。

  2. 在具有Docker守护进程的机器上,确保选项“-insecure-registry”不存在,并且您必须将上述步骤中生成的ca.crt复制到/etc/docker/certs.d/reg.yourdomain.com(或您的注册表主机IP),如果该目录不存在,请创建它。如果您将nginx端口443映射到另一个端口,则应该创建目录/etc/docker/certs.d/reg.yourdomain.com:port(或您的注册表主机IP:端口)。
    登录上传image示例:

[root@myregistry harbor]# docker login 172.16.10.65
Username (admin): 
Password: 
Login Succeeded
[root@myregistry harbor]# docker tag ubuntu 172.16.10.65/library/ubuntu
[root@myregistry harbor]# docker pull 172.16.10.65/library/ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
Digest: sha256:7c308c8feb40a2a04a6ef158295727b6163da8708e8f6125ab9571557e857b29
Status: Image is up to date for 172.16.10.65/library/ubuntu:latest

3,时间同步
若client 和servie时间不同步则会发生下面问题

[root@localhost guest]# docker login 172.16.10.65                                            Username: admin
Password: 
Error response from daemon: Get https://172.16.10.65/v2/: x509: certificate has expired or is not yet valid

方法:
同步时间

ntpdate 1.cn.pool.ntp.org

简单使用

1,登录


docker的企业级仓库管理harbor安装_第1张图片
image.png

2,创建用户


docker的企业级仓库管理harbor安装_第2张图片
image.png

docker的企业级仓库管理harbor安装_第3张图片
image.png

3,添加项目


docker的企业级仓库管理harbor安装_第4张图片
image.png

docker的企业级仓库管理harbor安装_第5张图片
image.png

参考文档:
https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

你可能感兴趣的:(docker的企业级仓库管理harbor安装)