華為鯤鵬 使用docker構建多平台映象

2021-10-25 05:19:09 字數 2526 閱讀 2426

最近在玩鯤鵬,由於鯤鵬的處理器是arm的,很多開源軟體如redis最新版本都沒有arm的映象,所以在鯤鵬上執行這些開源軟體會有問題

解決辦法也很簡單,把redis源**拉下來,使用原本的dockerfile在arm的基礎上在打包映象就好了

arm屬於精簡指令集(risc)和x86屬於複雜指令集(cisc)

那麼以後就可以用非常簡單的命令讓他去做很複雜的事情——比如只要說一句「吃飯」,他就會吃飯

可以看到linux下有很多主要的平台,那上面的redis來舉例,如果我要把redis移植到不同的平台難道還要每次都進行編譯?答案當然不是

既然我面臨這樣的問題,肯定其他人也面臨這樣的問題。

我們看下nginx 官方所提供的docker映象支援很多版本

docker buildx 是乙個cli外掛程式,擴充套件了docker命令,並完全支援 moby buildkit 構建器工具包提供的功能. 它提供了與 docker build 相同的使用者體驗,並具有許多新功能,例如:建立範圍內的構建器例項和同時針對多個節點進行構建。

直接安裝 docker v19.03 版本,該版本已包含 docker buildx 元件,因為目前還是實驗功能,預設沒有開啟。

開啟

$ vim ~/.docker/config.json

配置新增docker配置檔案,並重啟docker服務(systemctl daemon-reload systemctl restart docker)

環境變數配置開啟方法

$ export docker_cli_experimental=enabled

建立並使用

建立並使用

docker buildx create --use --name testbuilder

檢視docker buildx ls

如果要使用其他平台請執行相應平台命令 如下

$ docker run --rm -t arm64v8/ubuntu uname -m

aarch64

$ docker run --rm -t arm32v6/alpine uname -m

armv7l

$ docker run --rm -t ppc64le/debian uname -m

ppc64le

$ docker run --rm -t s390x/ubuntu uname -m

s390x

$ docker run --rm -t arm64v8/fedora uname -m

aarch64

$ docker run --rm -t arm32v7/centos uname -m

armv7l

$ docker run --rm -t ppc64le/busybox uname -m

ppc64le

注意你的dockerfile的基礎映象需要支援你的打包平台映象

from node:latest

你要打包成arm和x86的那麼,node基礎映象必須支援arm和x86

構建好的映象不會儲存本地,需要推送到映象倉庫,我這裡使用docker hub

docker login

docker buildx build -t daxion/buildx:opensips --platform=linux/arm,linux/arm64,linux/amd64 --push .

在push的時候我們可能會等很久出現這樣的錯誤

failed to solve: rpc error: code = unknown desc = server message: insufficient_scope: authorization failed

docker buildx build -t daxion/buildx:opensips --platform=linux/arm,linux/arm64,linux/amd64 . --push --output type=image,name=docker.io:443,push=true
最後成功截圖

Jenkins使用docker構建

jenkins master要將構建任務分配給docker,就必須在jenkins agent上安裝docker。建議給這些agent打上docker的標籤。在jenkins agent上安裝docker注意 要將 jenkins agent 的使用者加入docker的使用者組中,這樣jenkins...

使用docker 構建Yapi

1 建立 mongodb 資料卷 docker volume create mongo data yapi2.啟動 mongodb docker run d name mongo yapi v mongo data yapi data db mongo 暴漏本地介面啟動方式 docker run d...

windows 使用docker構建映象

一定要注意 先改下docker desktop的setting。不然生成映象直接 全都放到c盤。開啟cmd,到dockerfile的路徑 請把dockerfile單獨放到乙個目錄 使用docker build t image name 這個 就是當前目錄,然後就是漫長的等待。建立乙個基於某映象的容器...