Harbor倉庫搭建及使用
- 2021 年 11 月 2 日
- 筆記
- docker, Spring Boot
目錄
一、docker配置
- 如果docker版本比較老,無法安裝Harbor請卸載掉重裝
1、卸載之前的docker包
yum list installed|grep docker
# 移除docker相關
yum remove docker-ce.x86_64
2、安裝docker
# 安裝yum管理工具
yum install -y yum-utils
# 添加阿里雲鏡像
yum-config-manager --add-repo //mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安裝docker
yum install docker-ce docker-ce-cli
3、設置開機自啟docker並啟動docker
# 啟動docker
systemctl start docker
# 設置開機啟動
systemctl enable docker
4、查看docker版本
docker version
5、也可以將docker鏡像倉庫添加到/etc/docker/daemon.json文件中
vim /etc/docker/daemon.json
{
"registry-mirrors": ["//docker.mirrors.ustc.edu.cn"]
}
二、安裝docker-compose
1、下載docker-compose文件
官網地址://get.daocloud.io/
curl -L //get.daocloud.io/docker/compose/releases/download/v2.0.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2、為docker-compose文件賦予可執行許可權
chmod +x /usr/local/bin/docker-compose
3、查看docker-compose版本
docker-compose version
三、安裝harbor
1、下載地址
- 官網地址://github.com/goharbor/harbor/releases
- 版本:harbor-offline-installer-v2.2.2.tgz
wget //github.com/goharbor/harbor/releases/download/v2.2.2/harbor-offline-installer-v2.2.2.tgz
2、解壓文件
tar -zxvf harbor-offline-installer-v2.2.2.tgz
# 複製配置文件
cp harbor.yml.tmpl harbor.yml
3、修改harbor.yml配置
cd harbor
vim harbor.yml
# 修改如下配置
hostname: 192.168.3.12
http:
port: 1180
harbor_admin_password: Harbor12345
- hostname 這裡設置本機的ip
- harbor_admin_password 頁面的密碼
- 注釋掉https部分
4、修改daemon.json文件
- 解決docker login 時,提示https問題
- 添加insecure-registries
vim /etc/docker/daemon.json
{
"registry-mirrors": ["//docker.mirrors.ustc.edu.cn"],
"insecure-registries":["192.168.3.12:1180"]
}
5、運行/安裝
# 創建日誌目錄,沒有該目錄無法創建,不知為何
mkdir /var/log/harbor
./install.sh
6、訪問頁面
//192.168.3.12:1180
- 帳號admin,密碼Harbor12345
7、修改埠
- 如果需要修改埠請按以下操作
vim harbor.yml
# 修改埠
http:
port: 1181
vim /etc/docker/daemon.json
"insecure-registries":["192.168.3.12:1181"]
# 停止服務
docker-compose down
# 重新編譯
./prepare
# 重新啟動
docker-compose up -d
# 重啟docker服務
systemctl daemon-reload
systemctl restart docker
8、其它操作
# 停止
docker-compose stop
# 運行
docker-compose start
# 登錄
docker login -uadmin -pHarbor12345 192.168.3.12:1180
四、管理harbor
# linux登錄docker
docker login -uadmin -pHarbor12345 192.168.3.12:1180
# 拉取alpine鏡像
docker pull alpine
# 給鏡像打標籤,注意打標籤的格式為 鏡像倉庫名稱/項目名/鏡像名:版本號
docker tag docker.io/alpine:latest 192.168.3.12:1180/library/alpine:v1.1.2
# 將鏡像推送至harbor
docker push 192.168.3.12:1180/library/alpine:v1.1.2
五、springboot項目配置docker
1.創建Dockerfile文件
- 在項目目錄下創建該文件
# jdk版本
FROM java:8
# 臨時文件目錄
VOLUME /tmp
# 把target目錄下的jar包添加到容器里,並重命名為app.jar
ADD target/*.jar app.jar
# ENTRYPOINT 執行項目 app.jar。為了縮短 Tomcat 啟動時間,添加一個系統屬性指向 "/dev/urandom" 作為 Entropy Source.
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2.修改pom.xml文件
方式一:使用maven里配置帳號密碼
<properties>
<docker.repostory>192.168.3.12:1180</docker.repostory>
<docker.registry.name>library</docker.registry.name>
<docker.image.tag>v1.0.1</docker.image.tag>
<docker.maven.plugin.version>1.4.10</docker.maven.plugin.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- Dockerfile maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<configuration>
<contextDirectory>${project.basedir}</contextDirectory>
<!-- harbor 倉庫用戶名及密碼-->
<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
<repository>${docker.repostory}/${docker.registry.name}/${project.artifactId}</repository>
<tag>${docker.image.tag}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
maven配置
<!--harbor-->
<server>
<id>192.168.3.12:1180</id>
<username>admin</username>
<password>Harbor12345</password>
</server>
方式二:直接在pom文件里配置帳號密碼
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${docker.maven.plugin.version}</version>
<configuration>
<repository>${docker.repostory}/${docker.registry.name}/${project.artifactId}</repository>
<tag>${docker.image.tag}</tag>
<username>admin</username>
<password>Harbor12345</password>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
六、linux伺服器上打包並推送至harbor
1、將springboot項目源碼複製到伺服器
2、maven打包
- 進入項目目錄
mvn -U clean install -Dmaven.test.skip=true
3、打包成docker鏡
mvn dockerfile:build
4、將docker鏡像推送到Harbor倉庫
mvn dockerfile:push
5、其它操作
# 查看鏡像
docker images
# 啟動鏡像
docker run -d --name rapid-web2 -p 8081:8089 192.168.3.12:1180/library/rapid-screen:v1.0.1
6、harbor上查看
七、參考
- //www.cnblogs.com/binghe001/p/12810675.html
- //www.cnblogs.com/yal950727/p/10909221.html
- https問題://www.cnblogs.com/shunzi115/p/14970130.html
- docker升級://www.jianshu.com/p/11d4c7f25bb8