【Docker學習教程系列】8-如何將本地的Docker鏡像發佈到私服?

来源:https://www.cnblogs.com/kaigejava/archive/2022/12/10/16970889.html
-Advertisement-
Play Games

通過前面的學習,我們已經知道,怎麼將本地自己製作的鏡像發佈到阿裡雲遠程鏡像倉庫中去。但是在實際工作開發中,一般,我們都是將公司的鏡像發佈到公司自己搭建的私服鏡像倉庫中,那麼一個私服的鏡像倉庫怎麼搭建?怎麼將自己的鏡像推送到私服倉庫中呢?怎麼驗證是否成功呢?本文咱們就一起來學學怎麼將鏡像推送到私服鏡像 ...


通過前面的學習,我們已經知道,怎麼將本地自己製作的鏡像發佈到阿裡雲遠程鏡像倉庫中去。但是在實際工作開發中,一般,我們都是將公司的鏡像發佈到公司自己搭建的私服鏡像倉庫中,那麼一個私服的鏡像倉庫怎麼搭建?怎麼將自己的鏡像推送到私服倉庫中呢?怎麼驗證是否成功呢?本文咱們就一起來學學怎麼將鏡像推送到私服鏡像中。

8b1beb078ed0393bc30727cb6ed955b9.png

大家好,我是凱哥Java(kaigejava),樂於分享,每日更新技術文章,歡迎大家關註“凱哥Java”,及時瞭解更多。讓我們一起學Java。

文末送上本系列教程其他文章直通車,歡迎大家系統地去學習

本文目錄:

1:下載鏡像 DockerRegistry

2:運行私有庫Registry,相當於本地有個私有的Docker hub

3:案例演示創建一個新鏡像,ubuntu安裝ifconfig命令

安裝ifconfig

查看現有鏡像:

4:curl驗證私服庫上有什麼鏡像

5:將新鏡像修改符合私服規範的tag

6:修改配置文件使之支持http

7:push推送到私服

8:curl驗證私服上有什麼鏡像第二次查看

9:pull到本地並運行

從私服拉取命令:

重新查看本地鏡像:

 

docker私有鏡像倉庫:Docker Registry是官方提供的工具,可以用於構建私有鏡像倉庫

本地搭建私有倉庫步驟

1:下載鏡像 DockerRegistry

命令:

docker pull registry

5ba5a8c473603cbd520ebad0700b89fc.png

2:運行私有庫Registry,相當於本地有個私有的Docker hub

命令:

docker run -d -p 埠:埠 -v 容器地址:映射地址 --privileged-true registry

預設情況,倉庫被創建在容器的/var/lib/registry目錄下,建議自行用容器捲映射,方便宿主機兩條

實例:

docker run -d -p 5000:5000 -v /n/myregistry/:/tmp/registry --privileged=true registry

28f71eb4c6d764ae183c2e3cac75778c.png

查看docker正在運行的容器:

f70d1613114701609bc38702c72e53f5.png

3:案例演示創建一個新鏡像,ubuntu安裝ifconfig命令

99db5363f4b4dd7c1c37294534e306f4.png

安裝ifconfig

在容器中執行下麵兩個命令:

apt-get update

apt-get install net-tools

cd146e9ce3c59f636b3dcdb135b4543b.png

使用commit命令製作一個帶有ifconfig的ubuntu.

註意,docker commit命令是在宿主機上執行的

套用公式:

docker commit -m"add ifconfig" -a"凱哥Java" 0930939e6f99 kagejava/ifconfigubuntu:1.0.1

查看現有鏡像:

cee0aad0fb38e629e64baef4c4ad66b4.png

4:curl驗證私服庫上有什麼鏡像

命令:

curl -XGET http://192.168.50.128:5000/v2/_catalog

說明:192.xxx是虛擬機的地址

4862d6a0d5ad5f58b8a040db89b49410.png

可以看到私服上面是空的。

5:將新鏡像修改符合私服規範的tag

命令公式

docker tag 鏡像:Tag HOST:Port、Repository:Tag

註意:自己host主機ip地址。也就是虛擬機的ip地址

使用命令將:kaigejava/ifconfigubuntu:1.0.1 這個鏡像修改為:192.168.50.128:5000/kagejavaifconfig:1.0.1

docker tag kagejava/ifconfigubuntu:1.0.1 192.168.50.128:5000/kaigejavaifconfig:1.0.1

b07cda99f6d2030fab57c1d947cb0165.png

說明:192.168..50.128是虛擬機主機的ip.

命令執行完成之後,查看當前imags.如下圖:

9f369c30ed0eb16ecef258df61b027fd.png

6:修改配置文件使之支持http

在docker的json文件中添加

"insecure-registries":["192.168.50.128:5000"]

註意修改ip及添加逗號

02329eee5e0c9df8c86b441a3ccd6687.png

9ae96ba58a0b4dea103b1127686b2422.png

重啟docker命令:

systemctl restart docker

重啟docker後,重啟私服

docker run -d -p 5000:5000 -v /n/myregistry/:/tmp/registry --privileged=true registry

7:push推送到私服

命令公式:

docker push ip:斷開/鏡像信息:版本

d481bf70b687fcb979c16e179779fe29.png

當出現以下說明已經push成功:

e7c7b1164a735b3c69a6e795e7a533e9.png

8:curl驗證私服上有什麼鏡像第二次查看

命令:

curl -XGET http://192.168.50.128:5000/v2/_catalog

23320477545b8edde2e7c5dedf008ace.png

可以看到,我們已經將新的鏡像上傳到私服上了。

9:pull到本地並運行

911d1971712c8e968dbace199e19e1ee.png

從私服拉取命令:

docker pull ip:埠/鏡像名:版本號

0c23aa8b359a690312a2be78678e89ec.png

重新查看本地鏡像:

68745608fece315ffb6a86105ed7239a.png

 

直通車,本系列教程已發佈文章,快速到達,《Docker學習系列》教程已經發佈的內容如下:

【圖文教程】Windows11下安裝Docker Desktop

【填坑】在windows系統下安裝Docker Desktop後遷移鏡像位置

【Docker學習系列】Docker學習1-docker安裝

【Docker學習系列】Docker學習2-docker設置鏡像加速器

【Docker學習系列】Docker學習3-docker的run命令幹了什麼?docker為什麼比虛擬機快?

【Docker學習系列】Docker學習2-常用命令之啟動命令和鏡像命令

【Docker學習系列】Docker學習系列3:常用命令之容器命令

【Docker學習系列】Docker學習4-常用命令之重要的容器命令

【Docker教程系列】Docker學習5-Docker鏡像理解

【Docker教程系列】Docker學習6-Docker鏡像commit操作案例

【Docker學習教程系列】7-如何將本地的Docker鏡像發佈到阿裡雲

【Docker學習教程系列彙總】筆記及遇到問題解決文章

 

大家好,我是凱哥Java(kaigejava),樂於分享,每日更新技術文章,歡迎大家關註“凱哥Java”,及時瞭解更多。讓我們一起學Java

 

 

本文來自博客園,作者:kaizi1992,轉載請註明原文鏈接:https://www.cnblogs.com/kaigejava/p/16970889.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 項目中的dao層,我們用來查詢資料庫,獲取想要數據。有時我們會需要查詢數據給結構體賦值,並返回一個結構體指針,如下 // 結構體欄位已與資料庫對應 func GetCommunity(id int) (community *model.CommunityDetail, err error) { sq ...
  • flask操作資料庫 準備工作 安裝flask-script(版本過高可能會報錯) pip install flask-script==2.0.3 使用flask-script里的Manager類實例化來管理項目的啟動等 from apps import create_app from flask_ ...
  • 前言 現在正是卡達世界盃激戰正酣的時候,每天都有各種各樣的新聞。而且,不同的球隊,隨著比賽的進程,關註的熱度也會發生翻天覆地的變化。今天我們就來獲取卡達世界的球隊熱搜榜,並製作自動發送郵件腳本,把這些數據發送到你的郵箱里。 開發環境 python 3.8 pycharm 2021.2 reque ...
  • flask一般項目結構 初始化配置flask項目時,路由和視圖是放在啟動文件里的,這樣不太方便我們後期的整理和查閱! 因此,我們需要將項目啟動文件和路由視圖分開處理! 在項目文件下創建一個apps的包,在包的初始化文件里定義一個函數,用來實現app相關的功能 init.py from flask i ...
  • 哈嘍兄弟們,今天給大家分享一下Python初學需要知道的100個小技巧~ 1、for迴圈中的else條件 這是一個for-else方法,迴圈遍歷列表時使用else語句。下麵舉個例子,比如我們想檢查一個列表中是否包含奇數。那麼可以通過for迴圈,遍歷查找。 numbers = [2, 4, 6, 8, ...
  • flask基礎介紹和語法 flask項目初始化的app.py介紹 # 從flask包中導入flask類 from flask import Flask # 使用flask類實例化出一個app對象 # __name__:代表當前app.py這個模塊 app = Flask(__name__) # 創建 ...
  • 枯燥的編程中總得有些樂趣,今天我們不談論那些高深的技能,教你幾個在編程中的奇技淫巧,說不定在某些時候還能炫耀一番呢。 1、找到最大值和最小值 不使用 if else switch 和三元運算符,在給定的三元組中找到最大值和最小值:比如給定 3,14,8,在不使用 if else switch 和三元 ...
  • 目錄 一.OpenGL ES 圖像透明度 1.原始圖片 2.效果演示 二.OpenGL ES 圖像透明度源碼下載 三.猜你喜歡 零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL ES 學習路線推薦 : OpenGL ES ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...