docker如何構建多架構(arm64, x86_64, armv7)容器鏡像?


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

1.1 x86下如何更新docker?

$ 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

1.2 檢查以下docker的版本

$ docker --version

2. 編輯~/.docker/config.json文件來使能這個處於實驗階段的buildx功能(按照官方文檔修改此配置文件並未生效)

$ cat ~/.docker/config.json
{
   "experimental": "enabled"
}
2.1 筆者通過往/etc/docker/daemon.json文件中添加以下內容即可生效(生效需要重啟docker)
$ cat /etc/docker/daemon.json
{
  "experimental": true
}

3. 重啟docker使配置生效

$ sudo systemctl restart docker

4. 檢查docker是否使能處於實驗階段的新特性

$ sudo docker info | grep -i exp
Experimental: true (輸出此信息表明已啟用處於實驗階段的新特性)  

5. switch to a different driver

$ sudo docker buildx create --name testbuilder --driver-opt env.http_proxy=$http_proxy --driver-opt env.https_proxy=$https_proxy --driver-opt '"env.no_proxy='$no_proxy'"'
$ sudo docker buildx use testbuilder

6. 開始構建(保證當前目錄下有Dockerfile文件)

$ sudo docker buildx build --platform linux/amd64,linux/arm64,linux/armv7 -t test_demo:1.0 .

7. 參考資料

https://github.com/docker/buildx/#installing


免責聲明!

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



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