Docker 使用基礎(1)—鏡像倉庫

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??🎬慕斯主頁修仙—別有洞天

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???今日夜電波:秒針を噛む—ずっと真夜中でいいのに。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 0:34━━━━━━?💟──────── 4:20
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 🔄 ? ?? ? ? ? ?? ? ????

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?💗關注👍點贊🙌收藏您的每一次鼓勵都是對我莫大的支持😍


?目錄

首先理解幾個概念

Docker鏡像倉庫(Registry)是什么?

鏡像倉庫分類?

鏡像倉庫工作機制?

常用的鏡像倉庫命令

1. 登錄鏡像倉庫

2. 登出鏡像倉庫

3. 拉取鏡像

4. 推送鏡像

5. 搜索鏡像

注意事項

常見的鏡像命令

1. docker images

2. docker image inspect

3. docker tag

常見容器命令

1. docker run

2. docker ps


首先理解幾個概念

Docker鏡像倉庫(Registry)是什么?

????????鏡像倉庫 (Docker Registry) 負責存儲、管理和分發鏡像,并且提供了登錄認證能力,建立了倉庫的索引。鏡像倉庫管理多個 Repository, Repository 通過命名來區分。每個 Repository 包含一個或多個鏡像,鏡像通過鏡像名稱和標簽 (Tag)來區分。

????????鏡像倉庫(Registry):要從哪一個鏡像倉庫拉取鏡像,通常通過 DNS 或 IP 地址來確定一個鏡像倉庫如 hub.docker.com;一個 Registry 中可以存在多個Repository·Repository 可分為“頂層倉庫”和“用戶倉庫”;·用戶倉庫名稱格式為“用戶名/倉庫名”·每個倉庫可以包含多個 Tag(標簽),每個標簽對應一個鏡像
????????Repository: ·由某特定的 docker 鏡像的所有迭代版本組成的鏡像倉庫
????????鏡像名稱(name) +標簽(tag):如 nginx:latest
????????認證能力:提供用戶注冊,登錄、登出能力
????????索引:提供鏡像的索引信息,方便檢索
????????一個容器鏡像包含了兩個部分,一個是元數據,其實就是由 dockerfile 構建出來的描述文件,這個描述文件會說這個容器鏡像有多少層,每一層里面有什么內容,它的checksum 這些信息都會記錄下來,還有最終的可執行文件在哪就是在存儲數據里面,就是在一個一個的 blob 里面,真正占有空間的就是這些 blob。

????????下面看看官方給出的Docker 架構,可以結合此圖來理解鏡像倉庫的概念:

鏡像倉庫分類?

????????Docker鏡像倉庫按照不同的分類標準可以劃分為多種類型。以下是根據鏡像倉庫的公開性、供應商和面向群體等維度進行分類的詳細介紹:

一、按是否對外公開分類

  1. 公有倉庫
    • Docker Hub:最常用的公共倉庫,包含了大量的官方和社區維護的鏡像。用戶可以通過Docker Hub獲取這些鏡像,并享受自動構建、團隊協作等額外功能。Docker Hub的官網為https://hub.docker.com/。
    • 阿里云倉庫:在國內使用較為方便,提供了豐富的鏡像資源和服務。
    • 其他公有倉庫:還有如Google、RedHat等供應商提供的鏡像倉庫服務,以及第三方贊助的registry等。
  1. 私有倉庫
    • Registry私有倉庫:Docker官方提供的工具,可以用于構建私有的鏡像倉庫。Registry分為v1版本和v2版本,v2版本使用Go語言編寫,相對更加快速簡潔。
    • Harbor企業私有倉庫:Harbor是VMware公司開源的企業級Docker Registry項目,它基于Docker Registry進行了更高級的封裝,提供了圖形管理UI、基于角色的訪問控制(RBAC)、AD/LDAP集成以及審計日志等功能。
    • 阿里云個人私有倉庫:阿里云提供的個人私有倉庫服務,用戶可以在阿里云上創建和管理自己的私有鏡像倉庫。

二、按供應商和面向群體分類

  1. Sponsor Registry(贊助倉庫)
    • 這類倉庫由第三方提供,供客戶和Docker社區版使用。它們可能提供一些特定的服務或功能,以吸引用戶。
  1. Mirror Registry(鏡像倉庫)
    • 第三方提供的鏡像倉庫,但只讓客戶使用。例如,阿里云等云服務商提供的鏡像倉庫服務,用戶需要注冊才能使用。
  1. Vendor Registry(供應商倉庫)
    • 由發布Docker鏡像的供應商提供的倉庫。例如,Google、RedHat等公司在提供其軟件或服務的同時,也提供了對應的Docker鏡像倉庫服務。
  1. Private Registry(私有倉庫)
    • 通過沒有防火墻和額外安全層的私有實體提供的倉庫,僅供內部使用。這類倉庫通常由企業或組織自行搭建和管理,用于存儲和管理自己的鏡像資源。

鏡像倉庫工作機制?
  1. 鏡像倉庫使用流程
    ? 通過 docker login 登錄倉庫
    ? Docker pull 拉取需要的鏡像
    ? 通過 dockerfile 或者 commit 等方式制作完鏡像通過 docker push 上傳到倉庫
  2. 實際研發中鏡像倉庫如何使用
    Docker Registry 中的鏡像通常由開發人員制作,而后推送至“公共”或“私有”Registry 上
    保存,供其他人員使用,例如“部署”到生產環境;

常用的鏡像倉庫命令

????????Docker的鏡像倉庫命令是Docker生態系統中的重要組成部分,它們允許用戶與Docker鏡像倉庫進行交互,包括登錄、登出、拉取鏡像、推送鏡像以及搜索鏡像等。以下是對這些命令的詳細介紹:

1. 登錄鏡像倉庫
  • 命令docker login [OPTIONS] [SERVER]
  • 功能:登錄到一個Docker鏡像倉庫。如果未指定鏡像倉庫地址,默認為官方倉庫Docker Hub。
  • 選項
    • -u:登陸的用戶名
    • -p:登陸的密碼(出于安全考慮,建議不要在命令行中直接包含密碼)
  • 示例docker login -u 用戶名 -p 密碼(注意:出于安全考慮,實際使用時應避免直接在命令行中輸入密碼)

2. 登出鏡像倉庫
  • 命令docker logout [OPTIONS] [SERVER]
  • 功能:登出一個Docker鏡像倉庫。如果未指定鏡像倉庫地址,默認為官方倉庫Docker Hub。
  • 示例docker logout

3. 拉取鏡像
  • 命令docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • 功能:從鏡像倉庫中拉取或者更新指定鏡像。
  • 選項
    • -a:拉取所有tagged鏡像
    • --disable-content-trust:忽略鏡像的校驗,默認開啟
  • 示例
    • docker pull ubuntu:18.04:從Docker Hub下載ubuntu的18.04版本鏡像
    • docker pull -a java:從Docker Hub下載REPOSITORY為java的所有鏡像

如下我們在dockerhub拉取找到自己要拉取的鏡像:

找到對應的Tags:

????????拉取對應的鏡像即可,由于是國外的網站,因此我們可以更換國內鏡像源增加下載速度(具體參考上篇博客),注意格式為NAME:Tags:

4. 推送鏡像
  • 命令docker push [OPTIONS] NAME[:TAG]
  • 功能:將本地的鏡像上傳到鏡像倉庫,需要先登錄到鏡像倉庫。
  • 選項
    • --disable-content-trust:忽略鏡像的校驗,默認開啟
  • 示例docker push myapache:v1:上傳本地鏡像myapache的v1版本到鏡像倉庫中

????????需要先創建好自己的鏡像倉庫,并且按照創建好的鏡像倉庫格式改好鏡像源的格式才能進行推送:

5. 搜索鏡像
  • 命令docker search [OPTIONS] TERM
  • 功能:從Docker Hub查找鏡像。
  • 選項
    • --automated:只列出automated build類型的鏡像
    • -f <過濾條件>:基于給定條件過濾輸出,例如-f stars=10列出收藏數不小于10的鏡像
    • --no-trunc:顯示完整的鏡像描述
  • 示例docker search -f stars=10 java:從Docker Hub查找所有鏡像名包含java,并且收藏數大于10的鏡像

注意事項
  • 在使用這些命令時,請確保已經安裝了Docker,并且Docker服務正在運行。
  • 登錄和推送鏡像到私有倉庫時,需要確保你有足夠的權限。
  • 鏡像的TAG和DIGEST是鏡像的唯一標識,用于區分不同版本的鏡像。
  • 在拉取和推送鏡像時,Docker會檢查鏡像的完整性,確保鏡像沒有被篡改或損壞。這可以通過選項--disable-content-trust來忽略,但通常不推薦這樣做。

常見的鏡像命令


當然,下面是對您提到的Docker命令的詳細解析:

1. docker images

命令作用
docker images 命令用于列出本地主機上所有可用的Docker鏡像。這些鏡像可以是您從Docker Hub或其他鏡像倉庫拉取下來的,也可以是您自己構建的。

命令格式

docker images [OPTIONS] [REPOSITORY[:TAG]]

盡管該命令支持[OPTIONS][REPOSITORY[:TAG]]作為可選參數,但通常直接運行docker images而不帶任何參數就足以列出所有鏡像。

常用選項

  • -a--all:顯示所有鏡像(包括中間層鏡像)。默認情況下,docker images只顯示頂層鏡像。
  • --digests:顯示鏡像的摘要信息。
  • -f--filter:根據提供的條件過濾鏡像列表。
  • --no-trunc:不截斷輸出信息,顯示完整的鏡像信息。

示例

docker images

這將列出所有頂層鏡像的名稱、標簽、鏡像ID、創建時間以及大小。

2. docker image inspect

命令作用
docker image inspect 命令用于顯示一個或多個Docker鏡像的詳細信息,包括鏡像的配置信息、層信息、元數據等。

命令格式

docker image inspect [OPTIONS] IMAGE [IMAGE...]

您可以通過指定一個或多個鏡像名稱或ID來查看它們的詳細信息。

常用選項

  • --format:使用Go模板格式化輸出信息。這允許您以自定義的格式顯示鏡像的詳細信息。
  • --size:顯示鏡像的大小信息。

示例

docker image inspect nginx

這將返回nginx鏡像的詳細信息,包括其配置、層、架構等。

3. docker tag

命令作用
docker tag 命令用于給鏡像添加一個新的標簽(即,重命名鏡像或為其指定一個新的版本)。這對于將鏡像推送到Docker Hub或其他私有倉庫時特別有用,因為您可以為鏡像指定一個更具描述性的名稱和標簽。

命令格式

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

您需要將SOURCE_IMAGE[:TAG]替換為源鏡像的名稱和標簽(如果未指定標簽,則默認為latest),將TARGET_IMAGE[:TAG]替換為目標鏡像的名稱和標簽。

示例

docker tag nginx:1.21 mynginx:latest

這將為nginx鏡像的1.21版本添加一個新的標簽mynginx:latest。現在,您可以使用這個新標簽來引用這個鏡像,就像它是一個全新的鏡像一樣。請注意,這實際上并沒有創建鏡像的新副本,而只是為現有鏡像添加了一個額外的引用(即,標簽)。

常見容器命令

1. docker run

? 功能 創建一個新的容器并運行一個命令
? 語法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
? 別名 docker container run
? 關鍵參數
○ -d: 后臺運行容器,并返回容器 ID;
○ -i: 以交互模式運行容器,通常與 -t 同時使用;
○ -P: 隨機端口映射,容器內部端口隨機映射到主機的端口
○ -p: 指定端口映射,格式為: 主機(宿主)端口:容器端口
○ -t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
○ --name="nginx-lb": 為容器指定一個名稱;
○ -h "mars": 指定容器的 hostname;
○ -e username="ritchie": 設置環境變量;
○ --cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 綁定容器到指定 CPU 運行;
○ -m :設置容器使用內存最大值;
○ --network="bridge": 指定容器的網絡連接類型;
○ --link=[]: 添加鏈接到另一個容器;
○ --volume , -v: 綁定一個卷
○ --rm :shell 退出的時候自動刪除容器
? 樣例

#使用 docker 鏡像 nginx:latest 以后臺模式啟動一個容器,并將容器命名為
mynginx。
docker run --name mynginx -d nginx:latest
#使用鏡像 nginx:latest,以后臺模式啟動一個容器,將容器的 80 端口映射到主
機的 80 端口,主機的目錄 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest

我們使用docker在centos7的環境下啟動了一個Ubuntu20.04的操作系統,通過使用-it選項以可以交互的終端方式進行啟動:

2. docker ps

? 功能 列出容器
? 語法 docker ps [OPTIONS]
? 別名 docker container ls, docker container list, docker container ps
? 關鍵參數
○ -a :顯示所有的容器,包括未運行的。
○ -f :根據條件過濾顯示的內容。
○ --format :指定返回值的模板文件。如 json 或者 table
○ -l :顯示 latest 的容器。
○ -n :列出最近創建的 n 個容器。
○ --no-trunc :不截斷輸出。
○ -q :靜默模式,只顯示容器編號。
○ -s :顯示總的文件大小。
? 樣例

docker ps -a


???????????????????? 感謝你耐心的看到這里?( ′・?・` )比心,如有哪里有錯誤請踢一腳作者o(╥﹏╥)o!?

????????????????????????????????? ? ? ??

????????????????????????????????????????????????????????????????????????給個三連再走嘛~??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42405.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42405.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42405.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Pinia在vue項目中的使用

Pinia是Vue 3官方推薦的狀態管理模式&#xff0c;由尤雨溪創建并集成到了 Vue.js 中&#xff0c;它是一個輕量級、純粹基于函數的思想實現的應用狀態管理庫。Pinia的設計理念類似于Redux&#xff0c;但它更簡單易用&#xff0c;更適合于小型到中型的單文件組件應用。 在Vue 3項…

android13 固定U盤鏈接 SD卡鏈接 TF卡鏈接 硬盤鏈接

1.前言 有些客戶使用的應用并不帶有自動監聽U盤 sd卡廣播的代碼,使用的代碼是固定的地址,這樣的話,就需要我們將系統的掛載目錄固定了。 原始路徑 /storage/3123-19FA 增加鏈接 /storage/upan_000 -> /storage/3123-19FA 2. 首先如果是應用本身監聽的話,使用的是 /…

【Linux線程篇】探索Linux多線程:并行編程的入門指南

W...Y的主頁 &#x1f60a; 代碼倉庫分享&#x1f495; Linux線程概念 什么是線程 在一個程序里的一個執行路線就叫做線程&#xff08;thread&#xff09;。更準確的定義是&#xff1a;線程是“一個進程內部的控制序列”一切進程至少都有一個執行線程線程在進程內部運行&am…

【國產開源可視化引擎Meta2d.js】數據

數據 Meta2d.js是由數據驅動顯示的。圖紙和圖元支持任意數據。 內置屬性 基于“約定優于配置”原則&#xff0c;Meta2d.js引擎會有一些內置屬性名&#xff0c;例如id表示唯一標識、name表示圖元名稱、text表示文本、color表示顏色等。 內置屬性有固定含義&#xff0c;影響顯…

揭秘:離心風機風量背后的科學原理

在工業生產和建筑環境中&#xff0c;離心風機如同一位不倦的呼吸管家&#xff0c;默默地維持著空氣流動與品質。 你是否好奇過&#xff0c;究竟是什么因素在背后操縱著這位“呼吸管家”的風量表現呢&#xff1f;今天&#xff0c;就讓我們一探究竟。 舉個例子&#xff1a;你在吹…

『大模型筆記』GraphRAG:利用復雜信息進行發現的新方法!

GraphRAG:利用復雜信息進行發現的新方法! 文章目錄 一. GraphRAG:利用復雜信息進行發現的新方法!1. 將RAG應用于私人數據集2. 整個數據集的推理3. 創建LLM生成的知識圖譜4. 結果指標5. 下一步二. 參考文獻微軟官方推文:https://www.microsoft.com/en-us/research/blog/gra…

LeetCode題練習與總結:反轉字符串中的單詞--151

一、題目描述 給你一個字符串 s &#xff0c;請你反轉字符串中 單詞 的順序。 單詞 是由非空格字符組成的字符串。s 中使用至少一個空格將字符串中的 單詞 分隔開。 返回 單詞 順序顛倒且 單詞 之間用單個空格連接的結果字符串。 注意&#xff1a;輸入字符串 s中可能會存在…

速盾:好的cdn服務器

CDN&#xff08;Content Delivery Network&#xff09;是指內容分發網絡&#xff0c;是一種將網站的靜態內容&#xff08;如圖片、音頻、視頻&#xff09;緩存在分布式的服務器節點上&#xff0c;通過就近訪問用戶的請求&#xff0c;提供快速可靠的內容傳輸服務的技術。 好的C…

HTML5文本標簽、圖像標簽、超鏈接

一、文本樣式標簽 字體樣式標簽&#xff1a; 加粗&#xff1a;<strong>…</strong> 斜體&#xff1a; < em >…</ em> eg&#xff1a; <h3>徐志摩人物簡介</h3> <p> <strong>1910</strong>年入杭州學堂<br/> &l…

微信小程序 - 本地存儲 增加有效期

小程序的本地存儲API提供了wx.setStorageSync和wx.setStorage來存儲數據&#xff0c;注意的是&#xff0c;小程序的本地存儲并沒有明確的有效期設置&#xff0c;存儲的數據在不超過限制的情況下&#xff0c;會一直保留。 一、小程序本地存儲API 小程序的本地存儲API提供了設置…

WEB06JavaScriptAjax

基礎語法 引入方式 引入方式 內部腳本&#xff1a;將JS代碼定義在HTML頁面中 JavaScript代碼必須位于<script></script>標簽之間 在HTML文檔中&#xff0c;可以在任意地方&#xff0c;放置任意數量的<script> 一般會把腳本置于<body>元素的底部&a…

常見的氣體流量計有哪些?

1.氣體渦輪流量計 適用場合&#xff1a;流量變化小&#xff0c;脈動流頻率小&#xff0c;中低壓潔凈天然氣優點 1.精度高&#xff0c;重復性好 2.測量范圍廣&#xff0c;壓損小&#xff0c;安裝維修方便 3.具有較高的抗電磁干擾和抗震動能力缺點&#xff1a;分辨率低&#xff…

活動:不要卷模型,要卷應用

如何理解李彥宏說的“不要卷模型&#xff0c;要卷應用” 1. 現狀 現如今&#xff0c;是否具備獨立的 AI 技術似乎已經成為衡量一個互聯網企業是否成功的標志。各家都在竭盡全力卷模型、卷數據、卷訓練效果&#xff0c;市面上僅是語言類 AI 就多達十幾種&#xff0c;但從一名消…

瀏覽器中js外掛腳本的執行方式

1、開發工具控制臺交互執行 網頁中按F12打開開發者工具&#xff0c;選擇“控制臺”&#xff0c;鍵入js腳本命令回車執行&#xff0c;適用于臨時使用腳本邏輯簡單的場景&#xff0c;實例如下&#xff1a; // 獲取網頁元素的文本腳本 var elem document.getElementById("…

2-添加庫

本節將學習如何在項目中創建和使用庫&#xff0c;還將看到如何使庫的使用成為可選的。 本節中使用的示例代碼下載見step1-簡單開始cmake實踐-CSDN博客。 練習1 -創建一個庫 要在CMake中添加一個庫&#xff0c;使用add_library()命令并指定哪些源文件應該組成該庫。 我們可…

接入應用內支付服務,提高商業變現效率

在當今競爭激烈的移動應用市場中&#xff0c;開發者們面臨著提升應用商業變現能力的挑戰。用戶體驗的流暢性和支付的安全性至關重要。 HarmonyOS SDK應用內支付服務&#xff08;IAP Kit&#xff09;為開發者提供了一站式的解決方案&#xff0c;簡化了應用內支付的接入流程&…

C嘎嘎:類和對象(一)

目錄 面向過程和面向對象的初步認識 類的引入 類的定義 類的訪問限定符及封裝 訪問限定符 封裝 類的作用域 類的實例化 類對象模型 如何計算類對象大小 結構體內存對齊規則 this指針 this指針的引出 this指針的特性 類的6個默認成員函數 構造函數 概念 特性 …

喜訊丨美格智能通過國際EcoVadis平臺認證企業社會責任并榮獲承諾獎章,彰顯可持續發展實力

作為全球領先的無線通信模組及解決方案提供商&#xff0c;美格智能在社會責任領域再創新高。近日&#xff0c;美格智能憑借在企業社會責任和可持續性采購發展方面的卓越表現&#xff0c;通過國際在線權威評價機構EcoVadis對公司環境、勞工與人權、商業道德、可持續采購等方面審…

根據空格、制表符、回車符等分割字符串re.split

【小白從小學Python、C、Java】 【考研初試復試畢業設計】 【Python基礎AI數據分析】 根據空格、制表符、 回車符等分割字符串 re.split [太陽]選擇題 根據給定的Python代碼&#xff0c;哪個選項是正確的&#xff1f; import re pattern r\s print(f"【顯示】pattern{…

高清圖片壓縮無水印小程序源碼系統 前后端分離 帶完整的安裝代碼包以及搭建教程

系統概述 在當今的數字化時代&#xff0c;圖片作為信息傳播的重要載體&#xff0c;其質量和傳輸效率直接影響到用戶體驗。然而&#xff0c;高清圖片往往伴隨著較大的文件體積&#xff0c;這不僅會占用大量存儲空間&#xff0c;還會拖慢網頁或應用的加載速度。因此&#xff0c;…