前提条件
根据官网说明,简单描述一下安装Harbor前需要的主要条件:2.
硬件 | 最低要求 | 推荐 |
---|---|---|
CPU | 2 CPU | 4 CPU |
内存 | 4 GB | 8 GB |
硬盘 | 40 GB | 160 GB |
软件 | 版本 |
---|---|
Docker engine | 17.06.0-ce+或更高 |
Docker Compose | 1.18.0或更高 |
部署规划
说明 | 规划 |
---|---|
服务器IP | 10.0.0.38 |
端口 | 8004 |
安装目录 | /opt/module/harbor/harbor-2.9.1 |
数据映射目录 | /opt/module/harbor/harbor-2.9.1/data |
日志映射目录 | /opt/module/harbor/harbor-2.9.1/logs |
Harbor管理员密码 | xxxx |
Harbor的http协议默认端口为80,https协议默认端口为443;本次安装属于公司内网,无需https,采用http即可。为避免产生端口冲突,可以自己修改端口。
Harbor的数据映射目录默认为/data,日志映射目录默认为/var/log/harbor;此处为了统一管理,将数据目录和日志目录统一放在安装目录之下。
Harbor安装成功后,会生成一个管理员用户,用户名为admin,密码默认为Harbor12345,密码可改可不改。
离线安装包准备
- 准备harbor-offline-installer-v2.9.1.tgz,直接下载即可
- 准备
goharbor_prepare_v2.9.1.tar
。docker pull goharbor/prepare:v2.9.1 docker save -o goharbor_prepare_v2.9.1.tar goharbor/prepare:v2.9.1
共准备这两个tar包,上传到指定的服务器即可
离线安装步骤
-
解压
harbor-offline-installer-v2.9.1.tgz
安装包tar -zxvf harbor-offline-installer-v2.9.1.tgz -C /opt/module/ mv /opt/module/harbor /opt/module/harbor-2.9.1 mkdir -p /opt/module/harbor mv -f /opt/module/harbor-2.9.1 /opt/module/harbor cd /opt/module/harbor/harbor-2.9.1
-
修改
harbor.yml
配置文件cp harbor.yml.tmpl cp harbor.yml # 修改内容如下: hostname: 10.0.0.38 # 设置为指定部署机器IP http: port: 8084 # 从80修改为指定端口 harbor_admin_password: 12345678 # admin用户指定密码 data_volume: /opt/module/harbor/harbor-2.9.1/data # 数据存储目录 log: ...... local: ...... location: /opt/module/harbor/harbor-2.9.1/logs # 日志目录
-
装载
goharbor_prepare_v2.9.1.tar
为镜像docker load -i goharbor_prepare_v2.4.1.tar
-
进行预处理操作
./prepare
-
进行安装操作
./install.sh
-
创建harbor服务,便于日后管理
vim /lib/systemd/system/harbor.service # 添加以下内容 [Unit] Description=Harbor Documentation=http://github.com/vmware/harbor After=docker.service systemd-networkd.service systemd-resolved.service Requires=docker.service [Service] Type=simple Restart=on-failure RestartSec=5 ExecStart=/usr/local/bin/docker-compose -f /opt/module/harbor/harbor-2.9.1/docker-compose.yml up ExecStop=/usr/local/bin/docker-compose -f /opt/module/harbor/harbor-2.9.1/docker-compose.yml down [Install] WantedBy=multi-user.target
-
配置Docker镜像仓库为Harbor地址
vim /etc/docker/daemon.json # 添加以下内容(注意要删除注释) { "registry-mirrors": ["https://ppc7nwnq.mirror.aliyuncs.com"], # 镜像中心 "insecure-registries":["10.0.0.38:8004"] # 镜像仓库 }
-
重启Docker与Harbor
systemctl daemon-reload systemctl restart docker systemctl status docker systemctl start harbor
-
查看Harbor是否启动成功
[root@one harbor-2.9.1]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6bcf307e4913 goharbor/nginx-photon:v2.9.1 "nginx -g 'daemon of…" 39 minutes ago Up 22 minutes (healthy) 0.0.0.0:8004->8080/tcp, :::8004->8080/tcp nginx eaa74eb7c191 goharbor/harbor-jobservice:v2.9.1 "/harbor/entrypoint.…" 39 minutes ago Up 22 minutes (healthy) harbor-jobservice cc03f29ed039 goharbor/harbor-core:v2.9.1 "/harbor/entrypoint.…" 39 minutes ago Up 22 minutes (healthy) harbor-core 169def34d3cf goharbor/harbor-db:v2.9.1 "/docker-entrypoint.…" 39 minutes ago Up 22 minutes (healthy) harbor-db 7431a5681bf9 goharbor/harbor-registryctl:v2.9.1 "/home/harbor/start.…" 39 minutes ago Up 22 minutes (healthy) registryctl 6a8c779a8545 goharbor/redis-photon:v2.9.1 "redis-server /etc/r…" 39 minutes ago Up 22 minutes (healthy) redis d7f3b289bc47 goharbor/harbor-portal:v2.9.1 "nginx -g 'daemon of…" 39 minutes ago Up 23 minutes (healthy) harbor-portal e09c460430fb goharbor/registry-photon:v2.9.1 "/home/harbor/entryp…" 39 minutes ago Up 22 minutes (healthy) registry ada819fc8166 goharbor/harbor-log:v2.9.1 "/bin/sh -c /usr/loc…" 39 minutes ago Up 23 minutes (healthy) 127.0.0.1:1514->10514/tcp harbor-log
-
浏览器访问harbor web ui
10.0.0.38:8004
是否正常 -
Docker登录到 harbor,并推送镜像到仓库
docker login 10.0.0.38:8004 docker pull mysql:latest docker tag mysql:latest 10.0.0.38:8004/library/mysql:latest docker push 10.0.0.38:8004/library/mysql:latest