Harbor簡介
Harbor(港口,港灣)是一個用於存儲和分發Docker鏡像的企業級Registry服務器。
除了Harbor這個私有鏡像倉庫之外,還有Docker官方提供的Registry。相對Registry,Harbor具有很
多優勢:
1. 提供分層傳輸機制,優化網絡傳輸 Docker鏡像是是分層的,而如果每次傳輸都使用全量文件(所以
用FTP的方式並不適合),顯然不經濟。必須提供識別分層傳輸的機制,以層的UUID為標識,確定
傳輸的對象。
2. 提供WEB界面,優化用戶體驗 只用鏡像的名字來進行上傳下載顯然很不方便,需要有一個用戶界
面可以支持登陸、搜索功能,包括區分公有、私有鏡像。
3. 支持水平擴展集群 當有用戶對鏡像的上傳下載操作集中在某服務器,需要對相應的訪問壓力作分
解。
4. 良好的安全機制 企業中的開發團隊有很多不同的職位,對於不同的職位人員,分配不同的權限,
具有更好的安全性。
Harbor安裝
1)先安裝Docker並啟動Docker, 參考之前的安裝過程
https://www.cnblogs.com/pengrj/p/13595357.html
vim /etc/docker/daemon.json
{
"registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"],
"insecure-registry":["192.168.369"]
}
2)先安裝docker-compose (下載很慢)
curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
如果以上2)步驟不正常,就使用一下安裝
Docker-compose安裝步驟 https://docs.docker.com/compose/install/#install-compose
3)給docker-compose添加執行權限
sudo chmod +x /usr/local/bin/docker-compose
4)查看docker-compose是否安裝成功
docker-compose --version
5)下載Harbor的壓縮包
yum -y install wget
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.3.tgz
下載很慢,文件太大,最終用迅雷下載在傳上服務器
6)上傳壓縮包到linux,並解壓
tar -xzf harbor-offline-installer-v1.8.3.tgz
mkdir /opt/harbor
mv harbor/* /opt/harbor/
cd /opt/harbor/
7)修改Harbor的配置
vi harbor.yml
修改hostname和port
hostname: 192.168.66.102
port: 85
8)安裝Harbor
./prepare
./install.sh
9)啟動Harbor
docker-compose up -d 啟動
docker-compose stop 停止
docker-compose restart 重新啟動
10)訪問Harbor
默認賬戶密碼:admin/Harbor12345
在Harbor創建用戶和項目
1)創建項目
Harbor的項目分為公開和私有的:
公開項目:所有用戶都可以訪問,通常存放公共的鏡像,默認有一個library公開項目。
私有項目:只有授權用戶才可以訪問,通常存放項目本身的鏡像。
我們可以為微服務項目創建一個新的項目:
2)創建用戶
3)給私有項目分配用戶
進入test項目->成員
4)以新用戶登錄Harbor
把鏡像上傳到Harbor
比如我是在192.168.3.89這台機構建鏡像的,那以下操作都在3.89這台機器
1)給鏡像打上標簽
docker tag proa 192.168.3.69:85/test/proa:v1
2)推送鏡像
docker push 192.168.3.69:85/test/proa:v1
這時會出現報錯,是因為Docker沒有把Harbor加入信任列表中 </DI< div>
3)把Harbor地址加入到Docker信任列表(是在本機,不是harbor3.69服務器上)
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.3.69:85"]
}
需要重啟Docker
systemctl restart docker
4)再次執行推送命令,會提示權限不足
denied: requested access to the resource is denied
需要先登錄Harbor,再推送鏡像
5)登錄Harbor
docker login -u casts -p 1989.coM 192.168.3.69:85
docker push 192.168.3.69:85/test/proa:v1
從Harbor下載鏡像(也以3.89作為客戶機)
提示:基本和上傳操作一樣
1)安裝Docker,並啟動Docker(已經完成)
2)把Harbor地址加入到Docker信任列表(是在本機,不是harbor3.69服務器上)
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.3.69:85"]
}
需要重啟Docker
systemctl restart docker
3)登錄Harbor
docker login -u casts -p 1989.coM 192.168.3.69:85
docker pull 192.168.3.69:85/test/proa:v1