Docker與銀河麒麟的相容性問題

济南小老虎發表於2024-06-08

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其實相容性不好
國產系統的玩法還是比較不太瞻前顧後. 

建議還是需要完善驗證才可. 

相關文章