Docker與銀河麒麟的相容性問題
背景
大過節的出差.
客戶想遷移環境,
優先使用銀河麒麟的系統.
有一個需要使用容器docker執行nginx的的需求
結果發現被坑的很慘.
所以記錄一下
問題以及解決方案
安裝完docker 後 發現 docker run 提示沒有許可權.
docker: Error response from daemon:
failed to create task for container:
failed to create shim task: OCI runtime create failed:
container_linux.go:318: starting container process caused
"permission denied": unknown.
透過 docker version 進行檢視:
Client:
Version: 24.0.9
API version: 1.43
Go version: go1.20.13
Git commit: 2936816
Built: Thu Feb 1 00:47:46 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.9
API version: 1.43 (minimum version 1.12)
Go version: go1.20.13
Git commit: fca702d
Built: Thu Feb 1 00:49:16 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.7.13
GitCommit: 7c3aca7a610df76212171d200ca3811ff6096eb8
runc:
Version: 1.0.0-rc3
GitCommit:
docker-init:
Version: 0.19.0
GitCommit: de40ad0
可以明顯看到 runc的版本較低. 與 docker 二進位制下載的版本不匹配
簡單查詢發現, 應該是相容性不夠好.
百度出來的結果是 可能是 銀河麒麟裡面的 podman帶的 runc 版本太低的問題.
yum remove podman -y
發現會將級聯的 runc 刪除
再看一下 docker的版本, 其中 runc為:
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
然後再啟動docker
發現不在報錯了.
關於問題反思
podman與原生的docker其實相容性不好
國產系統的玩法還是比較不太瞻前顧後.
建議還是需要完善驗證才可.