自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文帶你掌握Containerd

開發(fā) 開發(fā)工具
nerdctl 是用于 containerd 并且 兼容 docker cli 習慣的管理工具,主要適用于剛從 docker 轉到 containerd 的用戶,操作 containerd 的命令行工具 ctr 和 crictl 不怎么好用,所以就有了 nerdctl。

Containerd 是什么

Containerd是一個開源的容器運行時工具,它為容器提供了核心功能。作為一個獨立的項目,Containerd旨在管理容器的核心功能,如鏡像管理、容器生命周期管理、網絡和存儲管理等。它是由Docker項目中的核心組件分離出來的,用于提供一個更加輕量級、獨立且可嵌入的容器運行時環(huán)境。Containerd被設計為一個通用的核心容器運行時,因此許多容器平臺和工具都可以構建在其之上,包括Kubernetes、Docker等。Containerd并不是直接面向終端用戶的工具,而是為了提供穩(wěn)定、可靠的容器基礎設施,讓開發(fā)者和其他項目可以基于它構建更高級別的容器化解決方案。

與 Docker 的關系

Docker和Containerd之間有一種父子關系。Containerd實際上是從Docker項目中拆分出來的,是Docker引擎中的核心組件之一。具體來說,Docker Engine在其架構中使用了一種插件化的方式,而Containerd就是其中一個重要的組件。Docker Engine的架構涵蓋了各種功能模塊,其中包括容器構建、鏡像管理、容器運行時、網絡和存儲管理等。Containerd被用作Docker Engine中負責容器生命周期管理和基本操作的核心組件之一。因此,Docker實際上是建立在Containerd之上的應用層工具。當你使用Docker命令時,它會與Containerd交互以執(zhí)行諸如創(chuàng)建、運行和管理容器等操作。然而,Containerd本身更加通用和抽象化,可以為其他容器平臺和工具提供底層支持,而不僅限于Docker??傮w而言,Docker是一個集成了各種工具和功能的容器平臺,而Containerd是其中一個核心組件,負責提供基本的容器運行時功能。

安裝Containerd

系統(tǒng)信息

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)

二進制安裝

下載地址?https://github.com/containerd/containerd最新版本1.7.10

[root@localhost ~]# wget https://github.com/containerd/containerd/releases/download/v1.7.10/cri-containerd-1.7.10-linux-amd64.tar.gz
[root@localhost ~]# tar xf cri-containerd-1.7.10-linux-amd64.tar.gz  -C /

生成Containerd配置

[root@localhost ~]# mkdir /etc/containerd
[root@localhost ~]# containerd config default > /etc/containerd/config.toml

查看配置
[root@localhost ~]# cat/etc/containerd/config.toml

安裝好containerd 之后,Containerd的配置文件中有如下兩項配置:
root = /var/lib/containerd
state = "/run/containerd"

root配置的目錄是用來保存持久化數(shù)據(jù)的目錄,包括content, snapshot, metadata和runtime
state 是用來保存運行時的臨時數(shù)據(jù)的,包括 sockets、pid、掛載點、運行時狀態(tài)以及不需要持久化的插件數(shù)據(jù)。

Containerd開機自啟

[root@localhost ~]# systemctl enable --now containerd
Created symlink from /etc/systemd/system/multi-user.target.wants/containerd.service to /etc/systemd/system/containerd.service.
[root@localhost ~]# systemctl start containerd

驗證其版本
[root@localhost ~]# containerd --version
containerd github.com/containerd/containerd v1.7.10 4e1fe7492b9df85914c389d1f15a3ceedbb280ac

runc驗證

默認 Containerd 安裝好就會自帶一個 runc 命令

執(zhí)行runc命令,如果有版本號返回則為正常
[root@localhost ~]# runc -v
runc version 1.1.10
commit: v1.1.10-0-g18a0cb0f
spec: 1.0.2-dev
go: go1.20.10
libseccomp: 2.5.4

如果運行runc命令時提示:runc: error while loading shared libraries: ?libseccomp.so.2: cannot open shared object file: No such file or directory,則表明runc沒有找到libseccomp,需要安裝 libseccomp libseccomp安裝

[root@localhost ~]# wget https://github.com/opencontainers/runc/releases/download/v1.1.5/libseccomp-2.5.4.tar.gz
[root@localhost ~]# tar xf libseccomp-2.5.4.tar.gz
[root@localhost ~]# cd libseccomp-2.5.4/
[root@localhost ~]# ./configure
[root@localhost ~]# make && make install

查找的到 即安裝成功
[root@localhost ~]# find / -name "libseccomp.so"
/root/libseccomp-2.5.4/src/.libs/libseccomp.so 
/usr/local/lib/libseccomp.so

做軟鏈

[root@localhost ]# ln -s /usr/local/lib/libseccomp.so /lib64/libseccomp.so.2

再次查看
[root@localhost ]# runc -v
runc version 1.1.10
commit: v1.1.10-0-g18a0cb0f
spec: 1.0.2-dev
go: go1.20.10
libseccomp: 2.5.4

也可以二進制runc安裝?https://github.com/opencontainers/runc最新版本:1.1.10

[root@localhost ~]# wget https://github.com/opencontainers/runc/releases/download/v1.1.10/runc.amd64
[root@localhost ~]# chmod +x runc.amd64

查找containerd安裝時已安裝的runc所在的位置,然后替換
[root@localhost ~]# which runc /usr/local/sbin/runc

替換containerd已安裝的runc
[root@localhost ~]# mv runc.amd64 /usr/local/sbin/runc

執(zhí)行runc命令,如果有命令幫助則為正常
[root@localhost ~]# runc -v
runc version 1.1.10
commit: v1.1.10-0-g18a0cb0f
spec: 1.0.2-dev
go: go1.20.10
libseccomp: 2.5.4

yum安裝

在使用 yum 包管理器安裝 Containerd 之前,需要先設置 Containerd 的 YUM 倉庫。以下是大致的步驟:

準備YUM 倉庫

創(chuàng)建一個名為 /etc/yum.repos.d/containerd.repo 的文件,并將以下內容添加到該文件中:

[containerd]
name=containerd
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg
enabled=1

安裝 Containerd

在設置好倉庫文件后,運行以下命令以更新 YUM 緩存并使其識別新的倉庫信息:

[root@localhost ~]# yum makecache
[root@localhost ~]# yum install -y containerd.io

啟動 Containerd

[root@localhost ~]# systemctl enable containerd
[root@localhost ~]# systemctl start containerd

驗證 Containerd

[root@localhost ~]# containerd -v
containerd containerd.io 1.6.25 d8f198a4ed8892c764191ef7b3b06d8a2eeb5c7f

[root@localhost ~]# runc -v
runc version 1.1.10
commit: v1.1.10-0-g18a0cb0
spec: 1.0.2-dev
go: go1.20.10
libseccomp: 2.3.1

Containerd 常見命令操作

更換 Containerd 后,以往常用的 docker 命令也不再使用,取而代之的分別是 crictl 和 ctr 兩個命令客戶端。一般來說某個主機安裝了 k8s 后,命令行才會有 crictl 命令。而 ctr 是跟 k8s 無關的,主機安裝了 containerd 服務后就可以操作 ctr 命令。

  • crictl 是遵循 CRI 接口規(guī)范的一個命令行工具,通常用它來檢查和管理kubelet節(jié)點上的容器運行時和鏡像。
  • ctr 是 containerd 的一個客戶端工具。

還有一個更高級點的命令 nerdctl ,nerdctl 是用于 containerd 并且 兼容 docker cli 習慣的管理工具,主要適用于剛從 docker 轉到 containerd 的用戶,操作 containerd 的命令行工具 ctr 和 crictl 不怎么好用,所以就有了 nerdctl。


責任編輯:武曉燕 來源: 云原生運維圈
相關推薦

2022-12-20 07:39:46

2023-12-15 09:45:21

阻塞接口

2023-09-07 07:17:01

KubernetesCRI標準

2020-12-18 11:54:22

Linux系統(tǒng)架構

2021-02-22 09:05:59

Linux字符設備架構

2021-06-04 09:35:05

Linux字符設備架構

2021-08-13 05:50:01

ContainerdDockerKubernetes

2023-09-11 06:32:30

VPAHPA容量

2023-11-20 08:18:49

Netty服務器

2022-10-21 17:24:34

契約測試定位

2021-04-28 08:05:30

SpringCloudEureka服務注冊

2023-11-06 08:16:19

APM系統(tǒng)運維

2021-05-29 10:11:00

Kafa數(shù)據(jù)業(yè)務

2023-07-31 08:18:50

Docker參數(shù)容器

2022-11-11 19:09:13

架構

2024-10-10 09:12:10

Spring接口初始化

2021-05-12 18:22:36

Linux 內存管理

2022-02-24 07:34:10

SSL協(xié)議加密

2023-11-08 08:15:48

服務監(jiān)控Zipkin

2023-10-27 08:15:45

點贊
收藏

51CTO技術棧公眾號