Containerd 簡介、安裝與使用指南

1. Containerd 簡介

Containerd 是一個開源的容器運行時,專注于管理容器的生命周期。它最初是 Docker 的一部分,后來被分離出來成為一個獨立的項目,并成為 Kubernetes 和其他容器平臺的底層運行時。Containerd 提供了容器的創建、啟動、停止、刪除等核心功能,同時支持鏡像的拉取和管理。

Containerd 的設計目標是輕量、高效且易于集成,它通過標準的 CRI(Container Runtime Interface)與 Kubernetes 等編排工具無縫對接。相比于 Docker,Containerd 更加專注于核心功能,適合需要更高定制化的場景。


2. Containerd 安裝教程

2.1 環境準備

  • 操作系統:Linux(推薦 Ubuntu 20.04 或 CentOS 7/8)

  • 內核版本:4.x 或更高

  • 用戶權限:root 或具有 sudo 權限的用戶

2.2 安裝 Containerd

2.2.1 使用包管理器安裝(推薦)

Ubuntu/Debian:

  1. 更新軟件包列表:

    sudo apt-get update

  2. 安裝依賴:

    sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

  3. 添加 Docker 官方 GPG 密鑰:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

  4. 添加 Docker 倉庫:

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  5. 安裝 Containerd:

    sudo apt-get update

    sudo apt-get install -y containerd.io

CentOS/RHEL:

  1. 安裝依賴:

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2

  2. 添加 Docker 倉庫:

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  3. 安裝 Containerd:

    sudo yum install -y containerd.io

2.2.2 手動安裝(適用于高級用戶)
  1. 下載 Containerd 二進制文件:

    wget https://github.com/containerd/containerd/releases/download/v1.6.0/containerd-1.6.0-linux-amd64.tar.gz

  2. 解壓文件:

    tar -C /usr/local -xzf containerd-1.6.0-linux-amd64.tar.gz

  3. 創建 systemd 服務文件:

    sudo vi /etc/systemd/system/containerd.service

    內容如下:

    [Unit]
    Description=containerd container runtime
    Documentation=https://containerd.io
    After=network.target[Service]
    ExecStart=/usr/local/bin/containerd
    Restart=always
    RestartSec=5
    Delegate=yes
    KillMode=process[Install]
    WantedBy=multi-user.target
  4. 啟動并啟用 Containerd:

    sudo systemctl daemon-reload

    sudo systemctl enable --now containerd


3. Containerd 使用方法

3.1 配置 Containerd

Containerd 的配置文件通常位于?/etc/containerd/config.toml。您可以根據需要修改配置文件,例如調整日志級別、存儲路徑等。

生成默認配置文件:

sudo mkdir -p /etc/containerd

containerd config default | sudo tee /etc/containerd/config.toml

重啟 Containerd 以應用配置:

sudo systemctl restart containerd

3.2 使用 Containerd 管理容器

3.2.1 拉取鏡像

使用?ctr?命令拉取鏡像:

sudo ctr images pull docker.io/library/nginx:latest

3.2.2 運行容器

運行一個容器:

sudo ctr run -d --rm docker.io/library/nginx:latest nginx-container

3.2.3 查看容器

列出所有容器:

sudo ctr containers list

3.2.4 停止容器

停止容器:

sudo ctr tasks kill nginx-container

3.2.5 刪除容器

刪除容器:

sudo ctr containers delete nginx-container

3.3 使用?nerdctl?增強 Containerd 功能

nerdctl?是一個兼容 Docker CLI 的工具,專為 Containerd 設計,提供了更友好的用戶體驗。

  1. 安裝?nerdctl

    wget https://github.com/containerd/nerdctl/releases/download/v0.20.0/nerdctl-0.20.0-linux-amd64.tar.gz

    tar -C /usr/local/bin -xzf nerdctl-0.20.0-linux-amd64.tar.gz

  2. 使用?nerdctl?管理容器:

    sudo nerdctl run -d --name nginx-container nginx:latest

    sudo nerdctl ps


4. 總結

Containerd 是一個強大且輕量級的容器運行時,適合需要高性能和定制化的場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70202.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70202.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70202.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開源語音克隆項目 OpenVoice V2 本地部署

#本機環境 WIN11 I5 GPU 4060ti 16G 內存 32G #開始 git clone https://github.com/myshell-ai/OpenVoice.git conda create -n opvenv python3.9 -y conda activate opvenv pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/…

【Prometheus】prometheus結合domain_exporter實現域名監控

?? 歡迎大家來到景天科技苑?? ???? 養成好習慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構師,華為云開發者社區專家博主,阿里云開發者社區專家博主,CSDN全棧領域優質創作者,掘金優秀博主,51CTO博客專家等。 ??《博客》:Python全…

rustdesk編譯修改名字

最近,我用Rust重寫了一個2W行C代碼的linux內核模塊。在此記錄一點經驗。我此前沒寫過內核模塊,認識比較疏淺,有錯誤歡迎指正。 為什么要重寫? 這個模塊2W行代碼量看起來不多,卻在線上時常故障,永遠改不完。…

在linux系統中安裝Anaconda,并使用conda

系統 : ubuntu20.04 顯卡:NVIDIA GTX1650 目錄 安裝Anaconda第一步:下載合適版本的Anconda1. 查看自己Linux的操作系統及架構命令:uname -a2. 下載合適版本的Anconda 第二步:安裝Aanconda1. 為.sh文件設置權限2. 執行.sh文件2.1 .…

(前端基礎)HTML(一)

前提 W3C:World Wide Web Consortium(萬維網聯盟) Web技術領域最權威和具有影響力的國際中立性技術標準機構 其中標準包括:機構化標準語言(HTML、XML) 表現標準語言(CSS) 行為標準&#xf…

【ISO 14229-1:2023 UDS診斷(會話控制0x10服務)測試用例CAPL代碼全解析③】

ISO 14229-1:2023 UDS診斷【會話控制0x10服務】_TestCase03 作者:車端域控測試工程師 更新日期:2025年02月15日 關鍵詞:UDS診斷、0x10服務、診斷會話控制、ECU測試、ISO 14229-1:2023 TC10-003測試用例 用例ID測試場景驗證要點參考條款預期…

TDengine 客戶端連接工具 taos-Cli

簡介工具獲取運行命令行參數 基礎參數高級參數 數據導出/導入 數據導出數據導入 執行 SQL 腳本使用小技巧 TAB 鍵自動補全設置字符列顯示寬度其它 錯誤代碼表 簡介 TDengine 命令行工具(以下簡稱 TDengine CLI)是用戶操作 TDengine 實例并與之交互最簡…

Git高級用法

GIT高級用法及實戰案例解析 前言 作為現代開發者的必備工具,Git的基礎操作(add/commit/push)早已深入人心。但當面對復雜場景時,掌握Git的高級用法將極大提升開發效率。本文將深入解析Git的高級功能,并配合真實場景案…

9個用于測試自動化的最佳AI測試工具(2024)

選擇一款優質的基于生成式AI人工智能的測試工具能夠確保測試過程的準確性和效率,從而加速整個軟件測試周期。相反,設計不佳的測試工具可能無法發現錯誤,并可能存在安全問題。它們可能產生誤報或漏報,誤導開發與測試團隊&#xff0…

vue-model如何自定義指令,及批量注冊自定義指令

一、在Vue.js中,v-model是一個用于在表單輸入和應用狀態之間創建雙向綁定的指令。要編寫自定義的v-model指令,你需要使用Vue的自定義指令API。以下是編寫自定義v-model指令的步驟: 定義一個自定義指令對象。在指令對象的bind鉤子函數中&…

簡單認識一下-Redis

一、什么是Redis Redis(Remote Dictionary Server)是一個開源的、基于內存的數據結構存儲系統,它既可以用作數據庫、緩存,也可以作為消息中間件使用。以下為你詳細介紹 Redis: 基本特點 高性能:Redis 將數…

LabVIEW的吞雨測控系統

本案例介紹了一種基于LabVIEW開發的吞雨測控系統,該系統通過建模仿真分析不同控制器模式下的階躍信號響應,從而選擇了最適合的控制器。為了有效解決在控制流量過程中出現的振蕩收斂和流量信號大擾動問題,系統采用了改進的積分分離PID算法&…

C++中的順序容器(一)

文章目錄 順序容器概述所有容器類型都支持的操作迭代器容器定義與初始化將一個容器初始化為另一個容器的拷貝標準庫array具有固定大小 賦值和swap關系運算符 順序容器的特有操作向順序容器添加元素訪問元素刪除元素特殊的forward_list操作改變容器的大小容器操作可能是迭代器失…

Javaweb中,使用Servlet編寫簡單的接口

案例:網頁提交用戶名和密碼信息,后端校驗密碼長度需在6-12位之間 后端部分 WebServlet("/valid") public class SimpleServlet extends HttpServlet{public void service(HttpServletRequest req, HttpServletResponse resp) throws IOExcepti…

C語言實現的常見排序算法

排序是計算機科學中非常重要的基礎算法之一。無論是在數據分析、數據庫查詢還是圖形界面中,我們都可能會遇到排序問題。本文將介紹幾種常見的排序算法,并提供其C語言實現代碼。排序算法的效率和應用場景有很大關系,不同的算法有不同的時間復雜…

對于簡單的HTML、CSS、JavaScript前端,我們可以通過幾種方式連接后端

1. 使用Fetch API發送HTTP請求(最簡單的方式): //home.html // 示例:提交表單數據到后端 const submitForm async (formData) > {try {const response await fetch(http://your-backend-url/api/submit, {method: POST,head…

[論文閱讀] SeeSR: Towards Semantics-Aware Real-World Image Super-Resolution

文章目錄 一、前言二、主要貢獻三、Introduction四、Methodology4.1 Motivation :4.2Framework Overview.** 一、前言 通信作者是香港理工大學 & OPPO研究所的張磊教授,也是圖像超分ISR的一個大牛了。 論文如下 SeeSR: Towards Semantics-Aware Rea…

案例-04.部門管理-刪除

一.功能演示 二.需求說明 三.接口文檔 四.思路 既然是通過id刪除對應的部門,那么必然要獲取到前端請求的要刪除部門的id。id作為請求路徑傳遞過來,那么要從請求路徑中獲取,id是一個路徑參數。因此使用注解PathVariable獲取路徑參數。 請求方…

Blazor-父子組件傳遞任意參數

在我們從父組件傳參數給子組件時,可以通過子組件定義的[Parameter]特性的公開屬性進行傳值,但是當我們需要傳遞多個值的時候,就需要通過[Parameter]特性定義多個屬性,有沒有更簡便的方式? 我們可以使用定義 IDictionar…

DeepSeek 的創新融合:多行業應用實踐探索

引言 在數字化轉型的浪潮中,技術的融合與創新成為推動各行業發展的關鍵力量。藍耘平臺作為行業內備受矚目的創新平臺,以其強大的資源整合能力和靈活的架構,為企業提供了高效的服務支持。而 DeepSeek 憑借先進的人工智能技術,在自然…