iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
DevOps

從0開始學習DevOps,並部署CICD至Java專案中系列 第 23

配置docker能推送image到私有的Harbor上、以及pull到docker

  • 分享至 

  • xImage
  •  

登入Harbor

使用上一篇所輸入的本機 IP 位址於瀏覽器中,就會轉導到Harbor 首頁。

使用者名稱預設為:admin

密碼:就是上一則在harbor.yml文件中所設置的密碼。預設為Harbor12345

https://ithelp.ithome.com.tw/upload/images/20231008/2016205815eP40ezlN.png

登入後畫面 → 點選「新建專案」→ 我以project名稱來作為命名,後續這個project的image就固定推送到這個專案資料夾中。

https://ithelp.ithome.com.tw/upload/images/20231008/20162058IZL9naKZZM.png

為docker配置可連接的倉庫位址

如果沒有配置的話,登入harbor時會顯示錯誤(記得要換成自己的ip)

docker login -u admin -p Harbor12345 <ip>:80

因為透過docker 來訪問 Harbor時,docker會使用Https協定做訪問,但Harbor這邊是搭建在本地local端的,是使用Http,所以就會導致錯誤無法正常訪問。

所以要為docker 配置 insecure-registries 可訪問的http位址

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://<ip>:80/v2/": http: server gave HTTP response to HTTPS client
  • Mac / Windows 環境請直接使用 docker 視窗工具配置

    點選右上角的設定→ Docker Engine → 加上橘框這一段json字串 → 點選 Apply & restart

    會配置完成並重啟docker

https://ithelp.ithome.com.tw/upload/images/20231008/201620582wZ6w6nlNl.png

  • Linux系统:配置倉庫的位址,進到編輯環境內配置Harbor倉庫位址
vi /etc/docker/daemon.json

告訴Docker,允許與指定的Registry建立不安全的Http連接

請把ip改為你配置harbor.yml文件時設定的IP,port號預設是80,如果在文件有修改的話,這邊也要使用修改後的port號。

{
    "insecure-registries": ["ip:80"]
}

配置完需要重新啟動docker

Linux 使用 systemctl restart docker

Mac / Windows 則同上方所述,使用docker.app視窗工具,點選按鈕會協助設定與重啟服務。

Harbor 也需要重新啟動,於該路徑下執行docker-compose up 啟動相關服務。

嘗試推送image到Harbor

配置完並重啟後,請再重新使用docker登入Harbor

docker login -u admin -p Harbor12345 <ip>:80

看到這段文字就是登入成功囉!

https://ithelp.ithome.com.tw/upload/images/20231008/20162058iu4VN385Ir.png

使用docker 推送 image 到 Harbor的指令

Harbor url:就是訪問Harbor的IP位址,:80

project_name:就是你在Harbor內設定的專案名稱

repository:TAG:要推送上去的 image 名稱 加上版本號

docker push Harbor_url/project_name/repository:TAG

執行push以及推送完成

https://ithelp.ithome.com.tw/upload/images/20231008/201620588HgVm9NXV0.png

在harbor上也可以看到image已經推送到專案goal-life-auth資料夾中

https://ithelp.ithome.com.tw/upload/images/20231008/20162058bZhSMkARjO.png

從Harbor 拉取 image 下來

先把原本的image 刪除 docker rmi <REPOSITORY>:TAG

再從Harbor拉取image下來到docker中,看到以下圖示就代表拉取成功囉

docker pull 192.168.2.60:80/goal-life-auth/goal-life-auth:0.1.0

https://ithelp.ithome.com.tw/upload/images/20231008/20162058YCFvyPcrOb.png

在Harbor 中就會顯示最後拉取時間

https://ithelp.ithome.com.tw/upload/images/20231008/20162058PRUUmXL2Vc.png


上一篇
什麼是Harbor?Mac如何下載與啟動
下一篇
關於Jenkins使用Docker Dood與Dind、與官方推薦的jenkinsci/bueocean image
系列文
從0開始學習DevOps,並部署CICD至Java專案中30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言