1. 程式人生 > 實用技巧 >Harbor 映象倉庫搭建

Harbor 映象倉庫搭建

安裝 Docker

# 下載 Docker 二進位制包
[root@k8s-master01 ~]# wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.1.tgz
[root@k8s-master01 ~]# tar xf docker-18.09.1.tgz 
[root@k8s-master01 ~]# mv /root/docker/* /usr/bin

# 編寫 Docker Systemd 管理檔案
[root@k8s-master01 ~]# cat /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target

# 啟動 Docker
[root@k8s-master01 ~]# systemctl start docker

安裝 Habor(需要 Docker 環境)

# 下載 Harbor
[root@k8s-master01 ~]# wget https://github.com/goharbor/harbor/releases/download/v1.8.6/harbor-offline-installer-v1.8.6.tgz
# 解壓到 /usr/local,建立軟連結,方便日後升級
[root@k8s-master01 ~]# tar xf harbor-offline-installer-v1.8.6.tgz -C /usr/local
[root@k8s-master01 ~]# mv /usr/local/harbor /usr/local/harbor-V1.8.6
[root@k8s-master01 ~]# ln -s  /usr/local/harbor-V1.8.6  /usr/local/harbor

# harbor.yml 檔案配置 (無 https)
[root@k8s-master01 harbor]# vim harbor.yml
hostname: www.myharbor.com
harbor_admin_password: harbor123
# The default data volume,重新搭建 Harbor 時,需要刪除該目錄下的資料,否則 Harbor 登入不進去
data_volume: /data
# 安裝
[root@k8s-master01 harbor]# ./install.sh

配置域名解析 & 不安全映象源

# 將私有倉庫域名加入本地解析檔案
[root@k8s-master01 ~]# vim /etc/hosts
10.0.0.50 www.myharbor.com

# 由於未配置 Https 需要在 daemon.json 中作如下配置
[root@k8s-master01 ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://yyu0sr3j.mirror.aliyuncs.com"],
  "insecure-registries": ["www.myharbor.com"]
}

# 重啟 Docker 
[root@k8s-master01 ~]# systemctl restart docker

# 重啟 Harbor 容器
[root@k8s-master01 ~]# docker-compose up -d 

登入 Harbor & 推送映象

# 登入私有倉庫
[root@k8s-master01 ~]# docker login www.myharbor.com
Username:
Password:
# 打標籤 & Push 映象
[root@k8s-master01 ~]# docker tag java-demo:v1 www.myharbor.com/wangqihan/java-demo:v1
[root@k8s-master01 ~]# docker push www.myharbor.com/wangqihan/java-demo:v1