1. 安装前环境准备
- docker
- docker-compose 官网下载地址:https://github.com/docker/compose/releases
否则后面安装harbor时会报错
2. harbor安装
2.1 harbor介绍
Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
2.2 harbor版本获取
目前使用的是harbor1.5.0版本,其他版本可以自行尝试,网上推荐的获取安装包地址为:
1. http://harbor.orientsoft.cn/ ---已不可用
2. https://github.com/goharbor/harbor/releases --- 需要翻墙
3. wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installe-v1.5.1.tgz --- 可用
由于离线安装包有800兆左右,下载速度比较慢,可直接用我下载后的版本,在服务器:172.30.15.12:/data/thirdAssembly/harbor 目录下
2.3 harbor安装
- 解压harbor离线安装包
tar zxvf harbor-offline-installer-v1.5.1.tgz
- 修改harbor配置文件harbor.cfg,将hostname改为本机地址
hostname = 172.30.15.12
- 若需修改harbor监听端口,则需修改docker-compose.yaml文件,默认http端口为80,https端口为443
proxy:
image: vmware/nginx-photon:v1.5.0
container_name: nginx
restart: always
volumes:
- ./common/config/nginx:/etc/nginx:z
networks:
- harbor
ports:
- 80:80
- 443:443
- 4443:4443
depends_on:
- mysql
- registry
- ui
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "proxy"
- 执行安装脚本
./install.sh
- 执行过程中,若有日志报错端口已被使用,则杀掉占用该端口的进程后重新执行脚本即可
- 安装成功后日志
✔ ----Harbor has been installed and started successfully.----
Now you should be able to visit the admin portal at http://172.30.15.12.
For more details, please visit https://github.com/vmware/harbor .
- 登录harbor可视化界面,访问地址:http://172.30.15.12,默认用户名:admin,密码:Harbor12345,登录成功则说明harbor已部署完成
3. springboot项目上传镜像到harbor
3.1 pom.xml文件配置
<properties>
<docker.repository>172.30.15.12</docker.repository>
<docker.registry.name>post</docker.registry.name>
</properties>
<build>
<finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/resources/</directory>
<includes>
<include>*.properties</include>
<include>*.xml</include>
</includes>
<excludes>
<exclude>*.yml</exclude>
</excludes>
</resource>