docker運(yùn)行異構(gòu)鏡像詳解
概述
關(guān)于docker鏡像在不同的cpu架構(gòu)下運(yùn)行報(bào)錯(cuò)的解決辦法,作者踩坑驗(yàn)證,在此分享經(jīng)驗(yàn)
某次工作遇到需要銀行內(nèi)部部署docker鏡像,由于行內(nèi)已經(jīng)開(kāi)始走信創(chuàng)的路線,使用鯤鵬系統(tǒng),arm架構(gòu),結(jié)果就遇到了
standard_init_linux.go:219: exec user process caused: exec format error
沒(méi)辦法,只能自己研究一下。
關(guān)于 docker 版本
docker運(yùn)行其他平臺(tái)容器,需要使用--platform參數(shù)來(lái)指定平臺(tái)docker 19.03.9及以上的版本才支持--platform參數(shù)- 默認(rèn)沒(méi)有開(kāi)啟
--platform參數(shù),需要手動(dòng)開(kāi)啟,直接執(zhí)行,會(huì)有下面的報(bào)錯(cuò)
查看是否開(kāi)啟 experimental 功能
--platform 參數(shù)需要 experimental 為 true,通過(guò)下面的命令可以驗(yàn)證是否開(kāi)啟
修改 daemon.json 文件,開(kāi)啟 experimental 功能


修改完成后,重啟 docker 來(lái)驗(yàn)證
systemctl restartdocker docker info | grep -i 'experimental'
binfmt_misc 、QEMU依賴安裝
binfmt_misc安裝

qemu-user-static安裝


安裝結(jié)果檢查

運(yùn)行arm64v8/centos鏡像
docker run -it --rm --platform arm64 -v /root/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/centos:latest /bin/bash
跨架構(gòu)構(gòu)建
思路是在構(gòu)建過(guò)程中,如果有RUN指令,在指令前將qemu文件加進(jìn)去。
以buildah為例,跟docker buildx應(yīng)該沒(méi)有差異。

可能出現(xiàn)的問(wèn)題
內(nèi)核版本過(guò)低報(bào)錯(cuò)

解決辦法:
- 方法一:升級(jí)內(nèi)核
- 方法二:手動(dòng)擋實(shí)現(xiàn)-p yes功能

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Windows的docker刪除容器后WSL2磁盤(pán)空間不釋放的問(wèn)題的解決方法
很多同學(xué)拉取鏡像使用一段時(shí)間后發(fā)現(xiàn) C 盤(pán)快滿了,把之前用過(guò)的鏡像和容器刪除,發(fā)現(xiàn) WSL 掛載目錄的虛擬磁盤(pán)大小沒(méi)有變化,非常的奇怪,所以本文介紹了Windows的docker刪除容器后WSL2磁盤(pán)空間不釋放的問(wèn)題的解決方法,需要的朋友可以參考下2024-12-12
SQL?Server?簡(jiǎn)介與?Docker?Compose?部署SQL?Server?容器
SQL?Server?是一個(gè)功能強(qiáng)大的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),適用于各種規(guī)模的應(yīng)用程序和數(shù)據(jù)存儲(chǔ)需求,在本文中,我將簡(jiǎn)要介紹?SQL?Server?的基本概念,并詳細(xì)闡述如何使用?Docker?Compose?部署?SQL?Server?容器,感興趣的朋友跟隨小編一起看看吧2023-10-10
docker中mysql初始化及啟動(dòng)失敗問(wèn)題解決方案
這篇文章主要介紹了docker中mysql初始化及啟動(dòng)失敗問(wèn)題解決方案的相關(guān)資料,需要的朋友可以參考下2016-10-10
手把手教你如何用NAS+Docker搭建WordPress網(wǎng)站
NAS能做的不僅僅是儲(chǔ)存,它還能作為一臺(tái)簡(jiǎn)單的服務(wù)器,完成一些相對(duì)簡(jiǎn)單的工作,這篇文章主要介紹了如何用NAS+Docker搭建WordPress網(wǎng)站的相關(guān)資料,需要的朋友可以參考下2025-12-12
Docker+Vscode搭建(本地/遠(yuǎn)程)開(kāi)發(fā)環(huán)境
本文介紹了使用Docker+VSCode搭建統(tǒng)一開(kāi)發(fā)環(huán)境的完整方案,文中通過(guò)圖文示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12
Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解
這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

