Harbor倉庫搭建及使用

呂林光發表於2021-11-02

一、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 https://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": ["https://docker.mirrors.ustc.edu.cn"]
}

二、安裝docker-compose

1、下載docker-compose檔案

官網地址:https://get.daocloud.io/

curl -L https://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、下載地址

wget https://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": ["https://docker.mirrors.ustc.edu.cn"],
  "insecure-registries":["192.168.3.12:1180"]
}

5、執行/安裝

# 建立日誌目錄,沒有該目錄無法建立,不知為何
mkdir /var/log/harbor

./install.sh

6、訪問頁面
http://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上檢視

七、參考

相關文章