docker啟用buildx插件,構建跨平台鏡像


1.更新docker版本到大於或等於19.03

sudo apt install -y apt-transport-https

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get update

sudo apt-get install docker-ce

2.設置環境變量

export DOCKER_CLI_EXPERIMENTAL=enabled

3.啟用binfmt_misc

docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d

4.驗證是 binfmt_misc 否開啟

ls -al /proc/sys/fs/binfmt_misc/

cat /proc/sys/fs/binfmt_misc/qemu-aarch64

5.新建構建器

docker buildx create --use --name mybuilder

6.啟動構建起

docker buildx inspect mybuilder --bootstrap

7.查看構建器及其所支持的cpu架構

docker buildx ls

8.創建Dockerfile

9.構建跨平台鏡像

docker buildx build -t 鏡像名 --platform=linux/arm,linux/arm64,linux/amd64 [Dockerfile所在的路徑] --push

注:提示需要登錄Dokcer Hub。貌似只能拉取Dokcer Hub里的鏡像構建跨平台鏡像,而不能用自己本地的鏡像構建。

注:開了binfmt_misc后,linux/armd64架構的宿主機上可以運行armf架構的docker容器(例如,把樹莓派上的系統打包並導入成docker鏡像,再創建容器。開啟binfmt_misc后,容器可正常運行。如果不開啟binfmt_misc,會報錯:standard_init_linux.go:211: exec user process caused “exec format error”)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM