Containerd 學習


一、Containerd 介紹

Containerd 是一個工業級標准的容器運行時,它強調簡單性、健壯性和可移植性。Containerd 可以在宿主機中管理完整的容器生命周期:容器鏡像的傳輸和存儲、容器的執行和管理、存儲和網絡等

1、命令行工具

ctr:containerd 相比於docker , 多了namespace概念, 每個image和container 都會在各自的namespace下可見, 目前k8s會使用k8s.io 作為命名空間

#刪除鏡像
ctr -n k8s.io i rm k8s.gcr.io/pause:3.2

#拉取鏡像
ctr -n k8s.io i pull -k k8s.gcr.io/pause:3.2

#推送鏡像
ctr -n k8s.io i push -k k8s.gcr.io/pause:3.2

#導出鏡像
ctr -n k8s.io i export pause.tar k8s.gcr.io/pause:3.2

#導入鏡像
ctr -n k8s.io i import pause.tar

不支持 build,commit 鏡像

crictl:是為k8s使用containerd而制作的, 其他非k8s的創建的 crictl是無法看到和調試的, 也就是說用ctr run 運行的容器無法使用crictl 看到

crictl 使用命名空間 k8s.io

nerdctl :(替代docker cli):

自從 Containerd 發布 1.5 以后,nerdctl 工具配合 Containerd 的情況下基本已經可以替換掉 Docker 和 Docker Compose;

nerdctl 官方發布包包含兩個安裝版本:

  • Minimal: 僅包含 nerdctl 二進制文件以及 rootless 模式下的輔助安裝腳本
  • Full: 看名字就能知道是個全量包,其包含了 Containerd、CNI、runc、BuildKit 等完整組件

nerdctl 項目地址

https://github.com/containerd/nerdctl/releases/

 GitHub - containerd/nerdctl: Docker-compatible CLI for containerd, with support for Compose

2、nerdctl的下載安裝

##下載
wget  https://github.com/containerd/nerdctl/releases/download/v0.11.1/nerdctl-full-0.11.1-linux-amd64.tar.gz

##解壓
tar Cxzvvf /usr/local nerdctl-full-0.11.1-linux-amd64.tar.gz

## 啟動 containerd 和 buildkitd
systemctl enable --now containerd
systemctl enable --now buildkit

二、nerdctl 運用

1、pull  images

ctr image  pull  docker.io/cnrancher/rancher:v2.4.17-ent
nerdctl pull  rancher/cluster-proportional-autoscaler-amd64:1.0.0

2、run 一個容器

nerdctl   run -d --privileged --restart=always  --name zjz-rancher  -p 80:80 -p 443:443  docker.io/cnrancher/rancher:v2.4.17-ent

三、 containerd連接harbor倉庫

1、github項目地址介紹

cri/registry.md at master · containerd/cri · GitHub

2、containerd的配置文件(docker 的 daemon.json)

vim   /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://registry-1.docker.io"] //到此為配置文件默認生成,之后為需要添加的內容
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."10.10.20.71:9998"]
endpoint = ["https://10.10.20.71:9998"]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
[plugins."io.containerd.grpc.v1.cri".registry.configs."10.10.20.71:9998".tls]
insecure_skip_verify = true
[plugins."io.containerd.grpc.v1.cri".registry.configs."10.10.20.71:9998".auth]
username = "admin"
password = "Harbor12345"

其中“10.10.20.71.9998”是私人倉庫地址。
insecure_skip_verify = true 意為跳過證書認證。

保存並重啟containerd服務即可

systemctl restart containerd

  

 

 

 

 終於可以像使用 Docker 一樣絲滑地使用 Containerd 了!-InfoQ 

https://github.com/containerd/containerd/releases   containerd的github項目地址

https://www.cnblogs.com/sparkdev/p/9063042.html    技術介紹和測試


免責聲明!

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



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