最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker實(shí)現(xiàn)buildx構(gòu)建多平臺(tái)(x86,arm64)構(gòu)架鏡像

 更新時(shí)間:2025年09月13日 09:10:31   作者:IT雜人  
這篇文章主要介紹了docker實(shí)現(xiàn)buildx構(gòu)建多平臺(tái)(x86,arm64)構(gòu)架鏡像,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

配置文件激活buildx

docker目前使用版本為Server Version: 20.10.7,添加配置支持buildx

  • docker版本較低時(shí),請(qǐng)升級(jí)docker版本
$ vim /etc/docker/daemon.json{  "experimental": true}

有部分docker未帶有,比如arm版本,則需要單獨(dú)下載文件:

下載對(duì)應(yīng)版本:https://github.com/docker/buildx/releases/tag/v0.8.2mkdir -p ~/.docker/cli-pluginsmv buildx-v0.8.2.linux-arm64 ~/.docker/cli-plugins/docker-buildxchmod +x ~/.docker/cli-plugins/docker-buildxdocker buildx ls # 驗(yàn)證是否安裝成功 

重啟docker

#驗(yàn)證buildx版本docker buildx version#重啟docker ***systemctl restart docker#檢查是否啟用docker info|grep Experimental

環(huán)境準(zhǔn)備(需要聯(lián)網(wǎng))

系統(tǒng)環(huán)境要求

  • 如果版本較低,需要升級(jí)內(nèi)核
uname -a #內(nèi)核版本要求4.8+

安裝binfmt,支持的平臺(tái)

安裝編譯時(shí)需要支持的平臺(tái),這里選擇所有

  • binfmt-support >= 2.1.7,需要聯(lián)網(wǎng)docker-hub
docker run --privileged --rm tonistiigi/binfmt --install all

初始化buildx構(gòu)造器(不需要倉(cāng)庫(kù)https)

1.創(chuàng)建name=mybuilder且自定義配置的構(gòu)造器

docker buildx create --use \--name mybuilder \--driver docker-container \--config /etc/buildkitd.toml  --use default

2.其中自定義配置內(nèi)容

!!!【修改配置后,要?jiǎng)h除舊的,重新創(chuàng)建構(gòu)造器】!!!

$ vi /etc/buildkitd.tomldebug = true# root is where all buildkit state is stored.root = "/var/lib/buildkit"# insecure-entitlements allows insecure entitlements, disabled by default.insecure-entitlements = [ "network.host", "security.insecure" ]# 你的私庫(kù)地址# optionally mirror configuration can be done by defining it as a registry.[registry."192.168.69.150"]  http = true  insecure = true[registry."192.168.69.150:80"]  http = true  insecure = true

啟動(dòng)構(gòu)建器,會(huì)自動(dòng)下載并啟動(dòng)buildx_buildkit_mybuilder0 的容器,需要聯(lián)網(wǎng)docker-hub

docker buildx inspect mybuilder --bootstrap                      #啟動(dòng)name=mybuilder默認(rèn)構(gòu)造器docker buildx ls                                                 #列出所有的構(gòu)造器和支持的平臺(tái)docker buildx use mybuilder                                      #使用name=buildx的構(gòu)造器,ls會(huì)出現(xiàn)*號(hào)表示正在使用中  docker buildx stop mybuilder                                     #停止name=buildx的構(gòu)建器   

制作多平臺(tái)基礎(chǔ)鏡像方式1:合并(docker manifest)

【可用docker buildx imagetools代替】

檢查是否啟用Experimental

docker info|grep Experimental #如果未啟動(dòng),則需要配置,詳見(jiàn)最頂端docker manifest --help   

顯示添加harbor-registry的80端口的配置

因?yàn)閮?nèi)網(wǎng)環(huán)境,未使用https,而且docker很多地方未完全實(shí)現(xiàn)兼容默認(rèn)去掉80端口,

在以后的配置中最好是添加端口使用,避免不必要的坑。

$ vim /etc/docker/daemon.json{  "insecure-registries":["192.168.69.150:80","192.168.69.150"],  "registry-mirrors":["http://192.168.69.150:80","http://192.168.69.150"]}#重新登錄docker login 192.168.69.150:80#重啟docker ***systemctl restart docker

創(chuàng)建多鏡像集合

docker manifest create --insecure  192.168.69.150:80/commandcenter/centos_arm:latest \                                   192.168.69.150:80/commandcenter/centos_arm:v1
  • –insecure,允許不安全的服務(wù)
  • 192.168.69.150:80/commandcenter/centos_arm:lates,第一個(gè)鏡像名為統(tǒng)一的名稱(chēng)
  • 192.168.69.150:80/commandcenter/centos_arm:v1,后面的表示要集成的子鏡像名,當(dāng)然可以集成多個(gè)子鏡像
  • 刪除使用docker manifest rm 【manifest統(tǒng)一鏡像名稱(chēng)】

修改子鏡像的架構(gòu)名稱(chēng)(可選)

當(dāng)有部分默認(rèn)的os/arch值沒(méi)有,或者太長(zhǎng)時(shí),可自定義修改

docker manifest annotate  192.168.69.150:80/commandcenter/centos_arm:latest \                          192.168.69.150:80/commandcenter/centos_arm:v1 \                          --os linux --arch arm64

指定v1版本為linux下的arm64架構(gòu)

推送多鏡像集合

docker manifest push --insecure  192.168.69.150:80/commandcenter/centos_arm:latest

–insecure,允許不安全的服務(wù)

檢查是否正常

進(jìn)入harbor,檢查鏡像是否有【文件夾】的圖標(biāo),點(diǎn)擊進(jìn)入是否有OS/ARCH的列

拉取測(cè)試

此處命令兼容80端口,所以可省略docker pull --platform=linux/arm64/v8 192.168.69.150/commandcenter/centos_arm:latest

使用buildx時(shí),指定platform則使用OS/ARCH的列值

查看已有鏡像的manifest

docker manifest inspect --insecure 192.168.69.150:80/commandcenter/centos_arm:latest 

調(diào)整Dockerfile接收平臺(tái)相關(guān)參數(shù)(可選,建議不寫(xiě))

# 顯示指定buildx傳遞--platform,但建議不寫(xiě),在buildx后面?zhèn)鬟fplatform參數(shù)即可,這樣可兼容一般build命令
FROM --platform=$TARGETPLATFORM 基礎(chǔ)鏡像名:TAG

構(gòu)建并導(dǎo)出到本地Docker images中

Dockfile中使用到的基礎(chǔ)鏡像需要支持多平臺(tái)架構(gòu),如下harbor顯示

一個(gè)鏡像的同一個(gè)tag下,點(diǎn)擊文件夾后,進(jìn)入多平臺(tái)架構(gòu)列表;

Artifacts拉取命令OS/ARCHTags大小
sha256:c238d03b【有個(gè)文件夾】linux/amd64117.57MiB
sha256:74842b33linux/arm64121.57MiB
# 導(dǎo)出到本地只能構(gòu)建一個(gè)鏡像,本地不支持同時(shí)導(dǎo)出manifest lists#arm64docker buildx build -t 鏡像名:版本號(hào)-arm64 --platform linux/arm64 . --load#x86_64(amd64)docker buildx build -t 鏡像名:版本號(hào)-amd64 --platform linux/amd64 . --load

導(dǎo)出本地tar文件

#導(dǎo)出tar文件docker save -o 鏡像名.TAG.tar 鏡像名:TAG#導(dǎo)出tar.gz壓縮文件docker save 鏡像名:TAG|gzip > 鏡像名.TAG.tar.gz

推送到倉(cāng)庫(kù)

docker tag  鏡像名:TAG 鏡像倉(cāng)庫(kù)地址/鏡像名:TAGdocker push 鏡像倉(cāng)庫(kù)地址/鏡像名:TAG 

另:

同時(shí)構(gòu)建X86_64與ARM64鏡像(支持list)

制作多平臺(tái)基礎(chǔ)鏡像方式2:也可用于制作基礎(chǔ)鏡像,Dockerfile一致

docker buildx build -t 鏡像倉(cāng)庫(kù)地址/鏡像名:TAG --platform linux/amd64,linux/arm64 . --push

倉(cāng)庫(kù)支持https,則直接創(chuàng)建構(gòu)建器,不需要配置

docker buildx create --name builderx  --driver docker-container  #創(chuàng)建name=buildx的構(gòu)建器
docker buildx use builderx                                       #使用name=buildx的構(gòu)造器,ls會(huì)出現(xiàn)*號(hào)表示正在使用中
docker buildx inspect builderx --bootstrap                       #啟動(dòng)name=builderx默認(rèn)構(gòu)造器
docker buildx ls                                                 #列出所有的構(gòu)造器和支持的平臺(tái)
docker buildx stop builderx                                      #停止name=buildx的構(gòu)建器

使用http非安全構(gòu)造器方式2:待修正補(bǔ)充

不需要?jiǎng)?chuàng)建配置文件:–config /etc/buildkitd.toml

但不能使用–push的操作,只能使用–load;

https://docs.docker.com/engine/reference/commandline/buildx_build/#allow

#創(chuàng)建構(gòu)造器:加--buildkitd-flags '--allow-insecure-entitlement security.insecure' 
 docker buildx create --use \
  --name mybuilder \
  --driver docker-container \
  --buildkitd-flags '--allow-insecure-entitlement security.insecure'  --use default

#生成鏡像:加--allow security.insecure
 docker buildx build --allow security.insecure  -t /ubuntu_buildx:v2.2 --platform linux/arm64 . --load

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用docker實(shí)現(xiàn)Redis主從配置的示例代碼

    用docker實(shí)現(xiàn)Redis主從配置的示例代碼

    在三臺(tái)服務(wù)器上用Docker部署Redis主從模式:Server1作為主節(jié)點(diǎn),Server2和Server3配置為從節(jié)點(diǎn)并連接主節(jié)點(diǎn),通過(guò)環(huán)境變量指定主IP,驗(yàn)證復(fù)制狀態(tài)以確保高可用性
    2025-09-09
  • docker服務(wù)關(guān)停的實(shí)現(xiàn)步驟

    docker服務(wù)關(guān)停的實(shí)現(xiàn)步驟

    在我看來(lái)所謂的優(yōu)雅關(guān)閉,就是在系統(tǒng)關(guān)閉時(shí),預(yù)留一些時(shí)間,讓你有機(jī)會(huì)來(lái)善后一些事情,本文就來(lái)介紹一下docker服務(wù)如何正確關(guān)停,感興趣的可以了解一下
    2023-10-10
  • Docker部署Apollo的實(shí)現(xiàn)步驟

    Docker部署Apollo的實(shí)現(xiàn)步驟

    眾所周知分布式配置中心在目前也可以說(shuō)是企業(yè)中項(xiàng)目的標(biāo)配了,本文主要介紹了Docker 部署Apollo的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Docker容器間通訊直接路由方式實(shí)現(xiàn)網(wǎng)絡(luò)通訊

    Docker容器間通訊直接路由方式實(shí)現(xiàn)網(wǎng)絡(luò)通訊

    今天小編就為大家分享一篇關(guān)于Docker容器間通訊直接路由方式實(shí)現(xiàn)網(wǎng)絡(luò)通訊,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • docker 使用CMD或者ENTRYPOINT命令同時(shí)啟動(dòng)多個(gè)服務(wù)

    docker 使用CMD或者ENTRYPOINT命令同時(shí)啟動(dòng)多個(gè)服務(wù)

    這篇文章主要介紹了docker 使用CMD或者ENTRYPOINT命令同時(shí)啟動(dòng)多個(gè)服務(wù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Docker下Mysql8數(shù)據(jù)備份與恢復(fù)實(shí)現(xiàn)

    Docker下Mysql8數(shù)據(jù)備份與恢復(fù)實(shí)現(xiàn)

    文章主要介紹了如何在Docker中創(chuàng)建和管理MySQL容器,包括創(chuàng)建容器、連接數(shù)據(jù)庫(kù)、備份和恢復(fù)數(shù)據(jù)庫(kù)、設(shè)置定時(shí)備份以及解決常見(jiàn)問(wèn)題
    2026-01-01
  • Docker 清理命令集錦

    Docker 清理命令集錦

    這篇文章主要介紹了Docker 清理命令集錦,需要的朋友可以參考下
    2014-10-10
  • Docker 清理環(huán)境操作

    Docker 清理環(huán)境操作

    這篇文章主要介紹了Docker 清理環(huán)境操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • docker-compose的安裝和使用詳解

    docker-compose的安裝和使用詳解

    這篇文章主要介紹了docker-compose的安裝和使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例

    Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例

    這篇文章主要介紹了Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例,本文通過(guò)場(chǎng)景分析實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12

最新評(píng)論

都安| 兴隆县| 康定县| 石首市| 扬中市| 明水县| 临安市| 阿坝| 集安市| 上饶市| 武川县| 通州区| 平凉市| 蓬安县| 浏阳市| 桃园县| 二手房| 休宁县| 三穗县| 宁津县| 波密县| 辽阳市| 瓮安县| 禄丰县| 泌阳县| 华容县| 宣威市| 大埔区| 沿河| 灵武市| 淮北市| 丰原市| 城口县| 通州市| 会泽县| 望城县| 拜泉县| 长子县| 大安市| 红河县| 镇原县|