国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker如何跨平臺(tái)下載Arm架構(gòu)的鏡像

這篇具有很好參考價(jià)值的文章主要介紹了Docker如何跨平臺(tái)下載Arm架構(gòu)的鏡像。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

docker arm 鏡像下載,docker,arm開發(fā),架構(gòu),容器,運(yùn)維

Docker是一個(gè)開源的容器化平臺(tái),它可以讓開發(fā)者打包應(yīng)用程序及其依賴項(xiàng)到一個(gè)容器中,并在任何地方運(yùn)行這個(gè)容器,而不用擔(dān)心環(huán)境配置的問題。類比一下,就好像打包一個(gè)包裹,里面包含了應(yīng)用程序和它需要的各種工具、庫等等,這個(gè)包裹可以在不同的地方被運(yùn)輸和打開,而不需要在每個(gè)地方重新裝一遍工具和庫。這樣,Docker可以使我們的應(yīng)用程序更加容易部署、更加可移植,并且可以提高開發(fā)效率。

而DockerHub則是一個(gè)公共官方的包裹存儲(chǔ)庫,也是我們使用docker pull命令時(shí)默認(rèn)的下載倉庫。在這個(gè)存儲(chǔ)庫中,有官方或個(gè)人所上傳的不同版本,不同架構(gòu)的鏡像。本次我們介紹的則是,如何在DockerHub網(wǎng)站下載官方arm架構(gòu)的鏡像。

docker arm 鏡像下載,docker,arm開發(fā),架構(gòu),容器,運(yùn)維如何使用Dokcer Hub?

以u(píng)buntu鏡像為例,當(dāng)我們登錄hub.docker.com后在搜索框內(nèi)輸入ubuntu。之后便會(huì)出來很多以

“鏡像名字”/”作者或鏡像內(nèi)容”:”版本”(也許會(huì)有版本)

為標(biāo)題的鏡像。當(dāng)然這只是個(gè)命名的方式,也有很多不同于這個(gè)格式的鏡像。此時(shí)第一個(gè)標(biāo)有OFFICIAL(官方)的鏡像往往也是我們想找的,因?yàn)楣俜界R像有足夠詳細(xì)的文檔、支持不同的版本與架構(gòu),可以滿足大多數(shù)要求。其中當(dāng)然也不乏有第三方作者制作精良的鏡像,它們往往省心省力。

回到正題,進(jìn)入到ubuntu官方鏡像的詳情頁。我們可以看到映入眼簾的則是他的介紹、版本等。在左上角則是官方提供的下載命令(此命令未指定版本等信息)。

點(diǎn)擊Tags選項(xiàng)卡,可以看到這是ubuntu鏡像發(fā)布過的版本信息??梢赃M(jìn)行篩選及搜索。latest標(biāo)簽則為最新版本的鏡像,我們也可以看到有多個(gè)它所支持的OS(系統(tǒng))/ARCH(架構(gòu))。右側(cè)則有下載此版本鏡像的命令,以及鏡像的大小。而左側(cè)則有每個(gè)鏡像摘要值,這個(gè)值是唯一的。

如何在X86_64架構(gòu)的主機(jī)上下載arm架構(gòu)鏡像?

計(jì)算機(jī)的CPU有不同的品牌如intel、amd等這些耳熟能詳?shù)摹K鼈兓镜募軜?gòu)都為X86,這個(gè)架構(gòu)早期有intel制定,后續(xù)由amd進(jìn)行擴(kuò)展為當(dāng)今主流的X86_64又名amd64。主流并非唯一,業(yè)界一直存在多種 CPU 架構(gòu),如arm架構(gòu)。許多手機(jī)的CPU也都是arm64架構(gòu)以及大名鼎鼎得Mac的M1、M2均是arm64架構(gòu)。Linux很早就開始支持arm64架構(gòu),其社區(qū)名為aarch64。在如今我們的科技被美國制裁。華為自研arm架構(gòu)的手機(jī)及服務(wù)器芯片也均已停產(chǎn),國家要邁向全國產(chǎn)的道路。而當(dāng)下國產(chǎn)CPU多半使用的均為arm架構(gòu),甚至當(dāng)下都無法獲得armv8/v9版本的授權(quán),但是arm架構(gòu)還是會(huì)慢慢的走進(jìn)大家的視野內(nèi)的。

前面扯得有點(diǎn)遠(yuǎn),所以我們?cè)撊绾螐腦86_64架構(gòu)的主機(jī)上下載arm架構(gòu)的鏡像呢?說到這就不得不提鏡像是怎么區(qū)分CPU架構(gòu)的了。

鏡像命名區(qū)分CPU架構(gòu)

CPU 構(gòu)架 “規(guī)范” 名稱

我們可以看到早期或者現(xiàn)在,也有不同架構(gòu)的鏡像添加 CPU 架構(gòu)名作為鏡像命名空間前綴。這樣就可以用不同的名字下載不同架構(gòu)的鏡像了。

docker pull amd64/ubuntu:20.04
docker pull arm64v8/ubuntu:20.04

# 其實(shí)現(xiàn)在你也能pull到。

這個(gè)方法所帶來的問題則很多,如CPU 構(gòu)架 “規(guī)范” 名稱該怎么命名?為什么x86_64不命名為amd64?arm64不命名為aarch64?

使用 Tag 后綴區(qū)分構(gòu)架

解決方法則是使用 Tag 后綴區(qū)分構(gòu)架,變通辦法是不使用命名空間前綴,改為使用鏡像名或 Tag 前綴或后綴區(qū)分。如:

docker pull ubuntu:20.04-x86_64
docker pull ubuntu:20.04-aarch64

在此情況下,我們可以直接使用docker pull 鏡像名:版本@摘要值 的方式進(jìn)行下載指定的鏡像。

如我們要下載armv7版本的ubuntu鏡像,可以直接點(diǎn)擊左側(cè)的摘要值進(jìn)入鏡像的詳細(xì)頁面。

在鏡像名稱下方則是我需要的摘要值,它是此鏡像的唯一值。再下面我們可以選擇不同的版本進(jìn)行查看。左下方的則是構(gòu)建此鏡像的層,Dockerfile構(gòu)建過程。而右下方則顯示了鏡像中包含的軟件包,軟件是否安全,是否有漏洞等。

現(xiàn)在可以使用當(dāng)前命令進(jìn)行下載指定版本的鏡像。

docker pull ubuntu:latest@sha256:ad18cfdb19dac67bf0072dacea661a817330e5c955d081f4d09914e743ae5d4a

使用此命令查看鏡像支持的架構(gòu)。

docker inspect ubuntu:latest@sha256:ad18cfdb19dac67bf0072dacea661a817330e5c955d081f4d09914e743ae5d4a
# ---
"Architecture": "arm",
        "Variant": "v7",
        "Os": "linux",
        "Size": 55339361,
        "VirtualSize": 55339361,

清單列表(Manifest List) 支持多構(gòu)架鏡像,進(jìn)行拉取arm架構(gòu)鏡像

容器社區(qū)提出了使用統(tǒng)一的鏡像名支持多種 CPU 構(gòu)架的方案。2017-09-12 后, docker 使用清單列表 (Manifest List) 功能實(shí)現(xiàn)了這一方案。當(dāng)有了這一功能,我們可以基于一個(gè)鏡像命名空間。當(dāng)使用docker pull 進(jìn)行拉取鏡像時(shí),docker會(huì)根據(jù)當(dāng)前CPU架構(gòu)拉取對(duì)應(yīng)的鏡像。

docker pull ubuntu:20.04

當(dāng)我們需要跨CPU架構(gòu)拉取鏡像時(shí),如我是一個(gè)X86主機(jī),想要拉取一個(gè)arm架構(gòu)的鏡像,除了剛才提到的方法。docker為我們提供了pull命令中的--platform參數(shù),此參數(shù)可以明確指定我們需要的鏡像。platform 不僅可指定 CPU 構(gòu)架信息,還可以指定操作系統(tǒng)信息。

前面提到,鏡像可以通過鏡像命名空間中加入架構(gòu)名稱來區(qū)分鏡像的架構(gòu)。但帶來的問題則是,不同的人可能命名規(guī)范并不相同,難以統(tǒng)一?,F(xiàn)在使用清單列表的鏡像在向docker鏡像中心進(jìn)行注冊(cè)時(shí)必須按照其規(guī)范進(jìn)行命名。但 platform 參數(shù)使用任意一個(gè)慣用名均可。如其注冊(cè)名為arm/v7 ,而在使用platfrom參數(shù)時(shí),指定為arm即可。

多架構(gòu)與單架構(gòu)拉取的鏡像為同一個(gè)。

# 拉取 amd64 命名空間下的單架構(gòu)鏡像

docker image pull amd64/ubuntu:20.04

# 拉取多架構(gòu)鏡像在 x86_64 構(gòu)架下的鏡像

docker image pull --platform x86_64 ubuntu:20.04

創(chuàng)建多構(gòu)架鏡像

docker 使用清單列表 (Manifest List) 支持多構(gòu)架鏡像。

什么是清單?

將一個(gè) docker 鏡像推送到鏡像注冊(cè)中心后,鏡像注冊(cè)中心會(huì)記錄鏡像的存儲(chǔ)信息,稱為鏡像清單 (Image Manifest) 。而清單列表則記錄了多個(gè)鏡像清單及其對(duì)應(yīng)的平臺(tái) platform 信息。所謂多構(gòu)架鏡像,或多平臺(tái)鏡像,就是清單列表及其關(guān)聯(lián)的多個(gè)單構(gòu)架鏡像。

創(chuàng)建多構(gòu)架 (多平臺(tái)) 鏡像的操作步驟為:

創(chuàng)建多個(gè)單構(gòu)架鏡像。

將所有鏡像推送到鏡像注冊(cè)中心,自動(dòng)生成鏡像清單。

匯總多個(gè)鏡像清單得到清單列表,同樣將清單列表推送 (存儲(chǔ)) 到鏡像注冊(cè)中心上。新版本 docker 可使用 docker manifest 命令創(chuàng)建和推送清單列表。

Linux 支持交叉構(gòu)建,即在一套環(huán)境下構(gòu)建多種 CPU 構(gòu)架下的鏡像。為了簡單起見,暫不討論這種方案,暫采用在多個(gè)構(gòu)架環(huán)境下創(chuàng)建各自的原生鏡像的辦法。

這里以創(chuàng)建多架構(gòu)鏡像 test/ubuntu:20.04 為例,介紹創(chuàng)建 docker 多構(gòu)架鏡像的實(shí)踐操作步驟。

基于官方多架構(gòu)鏡像 ubuntu:20.04 編寫 Dockerfile 。

在 x86_64 機(jī)器上構(gòu)建原生鏡像,推送到鏡像注冊(cè)中心。docker build --pull 表示每次構(gòu)建前自動(dòng)拉取最新的基礎(chǔ)鏡像,基礎(chǔ)鏡像是多架構(gòu)鏡像 (清單列表) 時(shí),自動(dòng)更新到當(dāng)前架構(gòu)的最新鏡像。

docker build --pull -t test/ubuntu:20.04-x86_64 .
docker push test/ubuntu:20.04-x86_64

同樣,在 arm64 機(jī)器上構(gòu)建原生鏡像,推送到鏡像注冊(cè)中心。

docker build --pull -t test/ubuntu:20.04-aarch64 .
docker push test/ubuntu:20.04-aarch64

使用推送到鏡像注冊(cè)中心的多個(gè)鏡像創(chuàng)建清單列表。注意,前面為每個(gè)單架構(gòu)鏡像添加了不同的 Tag 后綴,以方便區(qū)分引用。將清單列表推送到鏡像注冊(cè)中心,刪除本地副本 (清單列表只有存儲(chǔ)在鏡像注冊(cè)中心上才有意義) 。

docker manifest create test/ubuntu:20.04 hanyong/ubuntu:20.04-x86_64 hanyong/ubuntu:20.04-aarch64
docker manifest push test/ubuntu:20.04
docker manifest rm test/ubuntu:20.04

擴(kuò)展:

docker pull 鏡像存儲(chǔ)位置在哪?

查看docker鏡像默認(rèn)存儲(chǔ)位置:

根據(jù) Docker Root Dir: /var/lib/docker顯示/var/lib/docker為默認(rèn)存儲(chǔ)位置。

docker info
#---
Kernel Version: 5.4.0-26-generic
 Operating System: Ubuntu 20.04 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 7.748GiB
 Name: weijishu
 ID: LINI:YJJ3:WDYH:CFFN:5DBN:WM52:B57J:E6IP:VF7D:NLCV:XJR2:GF62
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/

總結(jié)

本文介紹了如何在x86_64架構(gòu)的主機(jī)上下載arm架構(gòu)的鏡像。鏡像可以通過鏡像命名空間中加入架構(gòu)名稱來區(qū)分鏡像的架構(gòu),也可以使用Tag后綴區(qū)分構(gòu)架。此外,docker使用清單列表支持多構(gòu)架鏡像,可以使用–platform參數(shù)指定需要的鏡像。本文還介紹了如何創(chuàng)建多構(gòu)架鏡像。

???歡迎關(guān)注???文章來源地址http://www.zghlxwxcb.cn/news/detail-797894.html

到了這里,關(guān)于Docker如何跨平臺(tái)下載Arm架構(gòu)的鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 最佳實(shí)踐-使用Github Actions來構(gòu)建跨平臺(tái)容器鏡像

    公眾號(hào)「架構(gòu)成長指南」,專注于生產(chǎn)實(shí)踐、云原生、分布式系統(tǒng)、大數(shù)據(jù)技術(shù)分享。 最近在寫K8s的相關(guān)系列文章,因?yàn)橛猩婕暗界R像構(gòu)建,發(fā)現(xiàn)在Mac m1的Arm架構(gòu)下構(gòu)建的部分鏡像,沒法在X86架構(gòu)下使用,不兼容。 嘗試網(wǎng)上介紹的各種方式,都已失敗告終,效果如下: 最終

    2024年02月05日
    瀏覽(25)
  • Docker多平臺(tái)、跨平臺(tái)編譯打包

    大多數(shù)帶有Docker官方標(biāo)識(shí)的鏡像都提供了多架構(gòu)支持。如:busybox鏡像支持 amd64 ,? arm32v5 ,? arm32v6 ,? arm32v7 ,? arm64v8 ,? i386 ,? ppc64le , and? s390x。 當(dāng)你在amd64設(shè)備上運(yùn)行容器時(shí),會(huì)拉取amd64鏡像。 當(dāng)你需要構(gòu)建多平臺(tái)鏡像時(shí),可以用 --platform 參數(shù)指定目標(biāo)平臺(tái),但是通常情況下

    2024年02月06日
    瀏覽(25)
  • docker在x86平臺(tái)下載arm的鏡像

    docker在x86平臺(tái)下載arm的鏡像

    6、進(jìn)入該arm版本的詳細(xì)頁面,在該頁面的上方有本版本鏡像的sha校驗(yàn)值。 7、復(fù)制該值,使用如下命令在x86平臺(tái)上進(jìn)行下載即可。 docker pull nginx:latest@sha256:687e0e4a235ee770533f6c25fb5791b14d7b6aa603ba4ed724abbd2ed51ee11a 8、完成下載,如圖:

    2024年02月12日
    瀏覽(30)
  • 組件化、跨平臺(tái)…未來前端框架將如何演進(jìn)?

    組件化、跨平臺(tái)…未來前端框架將如何演進(jìn)?

    前端框架在過去幾年間取得了顯著的進(jìn)步和演進(jìn)。前端框架也將繼續(xù)不斷地演化,以滿足日益復(fù)雜的業(yè)務(wù)需求和用戶體驗(yàn)要求。從全球web發(fā)展角度看,框架競爭已經(jīng)從第一階段的前端框架之爭(比如Vue、React、Angular等),過渡到第二階段的框架之爭(比如Next、Nuxt、Remix、小程

    2024年02月14日
    瀏覽(18)
  • Flutter的Platform介紹-跨平臺(tái)開發(fā),如何根據(jù)不同平臺(tái)創(chuàng)建不同UI和行為

    Flutter 平臺(tái)(Platform)是一個(gè)概念,用于描述 Flutter 框架在不同操作系統(tǒng)(如Android、iOS、Web、macOS、Windows等)上運(yùn)行時(shí)的適應(yīng)性和支持。Flutter 旨在實(shí)現(xiàn)跨平臺(tái)開發(fā),使開發(fā)人員能夠使用單一代碼庫構(gòu)建應(yīng)用程序,然后在多個(gè)平臺(tái)上運(yùn)行,而無需編寫平臺(tái)特定的代碼。以下是有

    2024年02月08日
    瀏覽(92)
  • SecureCRT & SecureFX 9.5 for macOS, Linux, Windows 下載 - 跨平臺(tái)的多協(xié)議終端仿真和文件傳輸

    SecureCRT & SecureFX 9.5 for macOS, Linux, Windows 下載 - 跨平臺(tái)的多協(xié)議終端仿真和文件傳輸

    SecureCRT SecureFX 9.5 for macOS, Linux, Windows 下載 - 跨平臺(tái)的多協(xié)議終端仿真和文件傳輸 請(qǐng)?jiān)L問原文鏈接:SecureCRT SecureFX 9.5 for macOS, Linux, Windows,查看最新版。原創(chuàng)作品,轉(zhuǎn)載請(qǐng)保留出處。 作者主頁:sysin.org SecureCRT 客戶端運(yùn)行于 Windows、Mac 和 Linux,將堅(jiān)如磐石的終端仿真與強(qiáng)大的

    2024年02月21日
    瀏覽(20)
  • 語義網(wǎng)與云計(jì)算:如何實(shí)現(xiàn)跨平臺(tái)的數(shù)據(jù)共享和協(xié)同

    語義網(wǎng)和云計(jì)算是當(dāng)今最熱門的技術(shù)趨勢之一,它們?yōu)槿斯ぶ悄?、大?shù)據(jù)分析和實(shí)時(shí)數(shù)據(jù)處理提供了強(qiáng)大的支持。在這篇文章中,我們將深入探討語義網(wǎng)和云計(jì)算的核心概念、算法原理、實(shí)例代碼和未來發(fā)展趨勢。 語義網(wǎng)是一種基于語義技術(shù)的網(wǎng)絡(luò),它旨在解決信息的語義差

    2024年04月15日
    瀏覽(27)
  • 【Flutter跨平臺(tái)插件開發(fā)】如何實(shí)現(xiàn)kotlin跟C++的相互調(diào)用

    在 Kotlin 中,可以使用 JNI (Java Native Interface) 來調(diào)用 C++ 代碼 調(diào)用步驟: 創(chuàng)建 C++ 文件并實(shí)現(xiàn)函數(shù)。 在 Kotlin 中聲明需要調(diào)用的 native 函數(shù)并加載 native 庫。 調(diào)用示例 Flutter 插件項(xiàng)目的例子 在 Flutter 插件中引用已有的 C++ 源碼需要以下步驟: 首先,在 Flutter 插件的 android 目錄下

    2024年01月25日
    瀏覽(100)
  • .net core使用Html模板轉(zhuǎn)PDF文件并下載的業(yè)務(wù)類封裝_基于DinkToPdf_跨平臺(tái)_windows+linux

    前言:我這里文件下載的模板選型優(yōu)先考慮html模板,上手容易,前后端通用,有了模板后就需要有轉(zhuǎn)換了,html轉(zhuǎn)PDF采用第三方包:DinkToPdf(1.0.8),下面是代碼核心類: ? 重點(diǎn):html轉(zhuǎn)PDF的三方包有很多,我目前采用的是支持跨平臺(tái)(windows和linux)的包源:DinkToPdf,這里提一嘴

    2024年02月09日
    瀏覽(128)
  • 跨平臺(tái)開發(fā)神器如何在Uniapp中使用WebView實(shí)現(xiàn)與Web頁面的通訊!

    Uniapp 是一個(gè)跨平臺(tái)的開發(fā)框架,可以同時(shí)開發(fā)出 iOS、Android、H5 等多個(gè)平臺(tái)的應(yīng)用。在開發(fā)過程中,我們可能需要與 Web 頁面進(jìn)行通訊,這時(shí)可以使用 WebView 組件來實(shí)現(xiàn)。 本教程將介紹如何在 uniapp 中使用 WebView 組件與 Web 頁面進(jìn)行通訊。 首先,我們需要?jiǎng)?chuàng)建一個(gè) uniapp 項(xiàng)目。

    2024年02月09日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包