Docker私有倉庫搭建及使用

Docker私有倉庫搭建及使用

準備:一臺服務器(www.niezhiliang.com),本地機器(我的是Mac)

上傳鏡像源代碼:https://github.com/niezhiliang/springbootwebsocket

1.下載docker私有倉庫鏡像

docker pull registry:2.6

2.編寫docker-compose.yml將鏡像跑起來

version: '3'

services:
  sign-online-eureka:
     image: docker.io/registry:latest
     restart: always
     container_name: private-registry
     hostname: private-registry
     ports:
       - "5000:5000"
     volumes:
       - /opt/data/registry:/tmp/registry registry
       - /etc/timezone:/etc/timezone
       - /etc/localtime:/etc/localtime

3. 本地上傳鏡像到私有倉庫

  • 1.下載代碼到本地
git clone https://github.com/niezhiliang/springbootwebsocket
  • 2.進入項目根目錄,將源代碼生成鏡像
	./buile_image.sh
    1. 打一個tag爲推到私有倉庫做準備
docker tag suyu/springbootwebsocket:1.0 www.niezhiliang.com:5000/suyu/springbootwebsocker:1.0

//查看鏡像
docker images 

//將鏡像推動到私有倉庫
docker push www.niezhiliang.com:5000/suyu/springbootwebsocker

我們會看到控制檯打印這條語句,大概意思就是一個是(私有倉庫)http協議一個是(本地)https協議,兩個協議不一致,導致推送失敗。我們將本地也設置爲http就能推成功

  • mac環境設置

在這裏插入圖片描述

修改docker的Daemon 將私有倉庫加進去,就好了Mac的操作爲 Preference ==> Daemon

在這裏插入圖片描述

  • linux環境設置
在/etc/docker文件夾下面創建daemon.json文件
加入倉庫地址
{
    "insecure-registries": ["www.niezhiliang.com:5000"]
}
多個倉庫之間,用逗號隔開。

{
    "insecure-registries" : ["registry1:5000"], 
    "insecure-registries" : ["registry2:5000"]
}
//Mac重啓docker,其他系統自己想辦法(重啓有點慢得等會)
killall Docker && open /Applications/Docker.app

//再次推送
docker push www.niezhiliang.com:5000/suyu/springbootwebsocker

在這裏插入圖片描述

4.測試是否推送成功

  • 刪除構建之前的鏡像
docker rmi [鏡像id]
  • 從私有倉庫下載鏡像
docker pull www.niezhiliang.com:5000/suyu/springbootwebsocker:1.0
  • 運行容器看看項目是否正常啓動(可以看到項目可以正常啓動)
docker run www.niezhiliang.com:5000/suyu/springbootwebsocker:1.0 

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章