Docker跨架構拉取鏡像

這段時間在做一個手上的產品往Arm版本的Linux上部署的測試,相信已經有不少人蔘與過轟轟烈烈的軟硬件國產化自研運動中,背景這裏就不多說了,本文這裏主要介紹的是一個在環境部署過程中遇到的一些問題。

那個產品本身依賴着三四個外部中間件的,之前一直是用的docker部署,雖然我平時用的都是x86的環境,但查詢過這些軟件都支持arm64的版本。最初我以爲用docker可以直接一鍵搞定的。誰知給我用的那個華爲鯤鵬服務器的網絡環境奇慢無比,並且慢就算了,還不穩定,下載下載着就斷了。試了一下午實在無法搞定。

我試了一下,這個機器的上傳速度還湊活,便想能不能在外部下載鏡像後再上傳上去。但我手頭上都是x86的環境,以前的docker compose文件下載下來的是x86架構的,不能直接使用。我便想是否有類似交叉編譯的那樣,能跨架構下載鏡像的參數可以配置,查詢了一下,果然還有,基本操作是如下幾步。

  1. 先修改docker服務加參數–experimental=true (默認開啓了, 不用執行這一步, 不行的話通過docker version查看)
  2. 拉取的時候添加--platform arm64
  3. 拉完後用docker inspect確認一下這個鏡像是不是你要的架構的.

示例:

docker pull --platform arm64 redis
docker inspect redis

這個platform參數在docker-compose文件中也是可以用,批量配置還是比較方便的。

 

導入導出:

拉完了後,用save導出,import導出。

docker save -o images.tar redis
docker load -i images.tar

這個命令也是是可以支持一次性導入,導出多個鏡像文件的,非常方便。

 

參考文章:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章