docker hub 可以當做鏡像倉庫來管理鏡像,但是出於安全性和效率的考慮,就選擇了私有倉庫docker registry 和 harbor, docker registry沒有操作界面,我是直接放棄了,這里就說一下官方提供到的harbor
踩了兩天的坑,現在簡單來記錄一下
一、部署harbor
分三步,第一步安裝docker,第二步安裝docker-compose ,第三步安裝 harbor
1. 安裝docker
安裝docker ,不要裝到podman了:
yum -y install docker-ce
運行docker
systemctl start docker
查看docker 版本
docker --version
2. 安裝docker-compose
安裝 epel-release:
yum install epel-release
安裝pip,注意,這里我的版本是centos8.4,要安裝pip3,低版本的安裝pip:
centos8及以上版本:
yum install -y python3-pip
其他版本:
yum install -y python-pip
安裝 docker-compose:
centos8及以上版本:
pip3 install --upgrade pip
pip3 install docker-compose
其他版本:
pip install docker-composea
安裝Git:
yum install git
查看docker-compose版本號
docker-compose -version
3. 安裝harbor
官網去下載離線版,
如果嫌官網比較慢的話,可以來csdn這里下載,啊哈哈哈...,地址:https://download.csdn.net/download/qq_38109220/43639433
然后xshell上傳到Linux上: https://github.com/goharbor/harbor/releases
上傳到指定文件夾,解壓,進入到harbor文件夾
cd /home/testmdir/barbor
修改配置文件harbor.yml,如果沒有這個文件就先復制
docker cp harbor.yml.tmpl harbor.yml
配置文件harbor.yml:
hostname: 192.168.168.230.130 (本機IP地址)
port: 6666 (自定義端口號,不要使用80端口)
harbor_admin_password: 123456789(admin登錄密碼)
注釋掉https相關的東西
啟動准備文件
./prepare
安裝harbor
./install.sh
成功了之后查看是否運行成功
docker ps
然后訪問就行了,不知道為什么,我這里只能通過IE和360瀏覽器才能訪問,其他瀏覽器都訪問不到,可能是該網址存在不安全加密,其他瀏覽器自動屏蔽了
這里就訪問:192.168.230.130:6666(上文配置文件配置的ip和端口)
賬號:admin
密碼:123456789(上文配置的密碼)
部署就OK了
二、基本使用
使用其實很簡單,harbor上面有操作命令提示,直接按照提示,復制下來修改就行了
創建鏡像倉庫
進入鏡像倉庫之后這里推送命令可以看到如果推送的示例
這里成員或者機器人可以設置擁有當前鏡像倉庫的權限,添加成員必須要在用戶管理里面存在的成員,機器人賬戶是生成的,可以設置賬戶到期時間
ok,創建完鏡像,准備工作做好之后就可以在docker上面操作
在這里之前,設置一下harbor的地址,方便識別,如果沒有這個文件就手動創建
vim /etc/docker/daemon.json
檢查一下設置成功沒有
docker info
1. 要先上傳,肯定要先登錄
docker login 192.168.230.130:6666(harbor地址) -u admin(賬號) -p 123456789(密碼)
2. 登錄成功之后,把需要push的文件進行tag標記一下,這里標簽后的鏡像一定要按照harbor的格式進行標簽,上面harbor有提示命令,可以復制下來更改
docker tag testweb:v1(需要標簽的鏡像) 192.168.230.130:6666/tweb/testweb:f1(標簽后的鏡像)
3. 成功之后可以看到該鏡像新增了一個新的標簽
4. 標簽弄好之后就可以上傳到我們的harbor上面了
docker push 192.168.230.130:6666/tweb/testweb:f1
這個時候就可以看到harbor上面多了一個鏡像
5. 下載鏡像
上圖有個拉取命令按鈕,直接點擊一下,就自動復制了,輸入pull命令
docker pull 192.168.230.130:6666/tweb/testweb@sha256:73eb9ad59a62734e650f581f4262da75bc8bbed3859d1ad90edea63ba3dd937f
如果Pull下來的鏡像Tag為<none>的話,直接通過鏡像ID重新設置tag就行了
docker tag 545f8dd7624f 192.168.230.130:6666/tweb/testweb:f1