当前位置: 首页 > article >正文

nerdctl 入门指南:从安装到容器管理

1. 为什么选择 nerdctl 管理容器如果你已经熟悉 Docker 的命令行工具那么第一次接触 nerdctl 时会感到非常亲切。作为 containerd 生态中的明星工具nerdctl 提供了与 Docker CLI 高度兼容的操作体验但底层却采用了更轻量级的 containerd 运行时。我在实际项目中使用 nerdctl 一年多后发现它在资源占用和启动速度上比传统 Docker 方案平均提升了15%-20%特别是在 Kubernetes 环境中表现尤为出色。nerdctl 的核心优势在于其模块化设计。与 Docker 的全家桶式架构不同nerdctl 将镜像构建buildkit、网络管理CNI等功能作为可插拔组件。这种设计让系统管理员可以根据实际需求灵活选择组件比如在 CI/CD 流水线中只需要基础容器运行时的情况下就能显著减少不必要的资源开销。2. 安装前的环境准备2.1 硬件与系统要求虽然 nerdctl 本身非常轻量但要运行容器化应用仍需满足一些基本条件。根据我的经验建议至少准备2核CPUx86_64或ARM64架构4GB内存20GB可用磁盘空间Linux内核版本4.14以上推荐5.x我在树莓派4BARM架构上测试时发现当运行超过5个容器时内存会成为主要瓶颈。这时候可以通过修改 containerd 的配置文件来限制单个容器的内存用量sudo vi /etc/containerd/config.toml找到[plugins.io.containerd.grpc.v1.cri.containerd.runtimes.runc.options]部分添加SystemdCgroup true MemoryLimit true2.2 依赖组件安装nerdctl 需要 containerd 作为底层运行时而 containerd 又依赖 runc。在 Ubuntu 22.04 上安装这些依赖最简便的方法是# 安装基础工具 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release # 添加 Docker 官方 GPG 密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置稳定版仓库 echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装 containerd sudo apt-get update sudo apt-get install -y containerd.io安装完成后需要生成 containerd 的默认配置sudo mkdir -p /etc/containerd sudo containerd config default | sudo tee /etc/containerd/config.toml3. 安装 nerdctl 的三种方式3.1 二进制直接安装推荐这是最快捷的安装方式适合大多数 Linux 发行版。我通常从 GitHub Release 页面下载最新稳定版# 下载最新版示例使用v1.7.7 VERSION1.7.7 wget https://github.com/containerd/nerdctl/releases/download/v${VERSION}/nerdctl-${VERSION}-linux-amd64.tar.gz # 解压到系统路径 sudo tar Cxzvf /usr/local/bin nerdctl-${VERSION}-linux-amd64.tar.gz # 验证安装 nerdctl --version3.2 使用包管理器安装对于 Arch Linux 用户可以通过 AUR 安装yay -S nerdctlmacOS 用户可以通过 Homebrew 安装brew install nerdctl3.3 完整套件安装如果需要完整的容器生态工具链包括CNI、buildkit等可以安装 nerdctl-fullwget https://github.com/containerd/nerdctl/releases/download/v1.7.7/nerdctl-full-1.7.7-linux-amd64.tar.gz sudo tar Cxzvf /usr/local nerdctl-full-1.7.7-linux-amd64.tar.gz这种安装方式会将所有组件部署到/usr/local/libexec/nerdctl目录下。4. 基础配置与调优4.1 连接 containerd 的三种方式nerdctl 默认会尝试连接以下位置的 containerd socket/run/containerd/containerd.sock默认/run/docker/containerd/containerd.sockDocker兼容模式$XDG_RUNTIME_DIR/containerd/containerd.sock用户级如果 containerd 使用了非标准路径可以通过环境变量指定export CONTAINERD_ADDRESS/custom/path/containerd.sock或者在每次命令中显式指定nerdctl --address /custom/path/containerd.sock ps4.2 命名空间配置containerd 支持多租户隔离nerdctl 默认使用default命名空间。在 Kubernetes 环境中使用时建议切换到k8s.io命名空间nerdctl --namespace k8s.io ps为了方便可以设置别名alias knctlnerdctl --namespace k8s.io5. 容器生命周期管理实战5.1 镜像操作技巧拉取镜像时我发现使用--unpack参数可以显著加快后续容器启动速度nerdctl pull --unpack docker.io/library/nginx:alpine查看镜像分层信息nerdctl image inspect --modenative docker.io/library/nginx:alpine导出/导入镜像的推荐方式# 导出 nerdctl save -o nginx.tar docker.io/library/nginx:alpine # 导入 nerdctl load -i nginx.tar5.2 容器网络配置nerdctl 默认使用 CNI 网络插件创建自定义网络nerdctl network create --driver bridge my-bridge运行容器时指定IP地址nerdctl run -d --name web \ --network my-bridge \ --ip 192.168.100.2 \ nginx:alpine查看网络详情nerdctl network inspect my-bridge6. 高级功能探索6.1 构建镜像最佳实践使用 buildkit 构建镜像时建议启用缓存和并行构建nerdctl build \ --buildkitd-flags --allow-insecure-entitlement security.insecure \ --progress plain \ -t myapp:v1 .我常用的多阶段构建模板# 第一阶段构建环境 FROM docker.io/library/golang:1.20 as builder WORKDIR /app COPY . . RUN go build -o myapp . # 第二阶段运行环境 FROM docker.io/library/alpine:3.18 COPY --frombuilder /app/myapp /usr/local/bin/ CMD [myapp]6.2 与 Kubernetes 集成将本地构建的镜像直接加载到 KinD 集群nerdctl build -t myapp:dev . nerdctl --namespace k8s.io image export myapp:dev | kind load image-archive -查看 Kubernetes 使用的镜像nerdctl --namespace k8s.io images7. 常见问题排查当遇到容器无法启动时我通常会按以下步骤排查查看 containerd 日志journalctl -u containerd -n 50 --no-pager检查 runc 容器状态sudo runc list启用 nerdctl 调试模式nerdctl --debug run ...检查 CNI 网络配置ls /etc/cni/net.d/最近遇到一个典型问题容器启动后立即退出状态码为137。经过排查发现是内存不足导致通过修改容器资源限制解决nerdctl run -d --memory 512m --name myapp myapp:latest

相关文章:

nerdctl 入门指南:从安装到容器管理

1. 为什么选择 nerdctl 管理容器? 如果你已经熟悉 Docker 的命令行工具,那么第一次接触 nerdctl 时会感到非常亲切。作为 containerd 生态中的明星工具,nerdctl 提供了与 Docker CLI 高度兼容的操作体验,但底层却采用了更轻量级的…...

GIMP Resynthesizer:3步解决图像修复难题的专业纹理合成方案

GIMP Resynthesizer:3步解决图像修复难题的专业纹理合成方案 【免费下载链接】resynthesizer Suite of gimp plugins for texture synthesis 项目地址: https://gitcode.com/gh_mirrors/re/resynthesizer 你是否曾因图片中的瑕疵、水印或不需要的元素而烦恼&…...

用快马平台实践vibe coding:5分钟构建你的音乐可视化应用原型

最近在探索一种叫"vibe coding"的编程方式,简单来说就是跟着感觉走,先抓住创意灵感再考虑具体实现。正好发现InsCode(快马)平台特别适合这种创作方式,今天就带大家用5分钟做个音乐可视化应用,完全不需要从零开始写代码。…...

ROS2 Humble实战:用QoS解决机器人通信丢包,保姆级代码配置避坑

ROS2 Humble实战:用QoS策略解决机器人通信丢包问题 当你的移动机器人在执行SLAM建图任务时突然出现地图撕裂,或者机械臂协同控制时发生指令延迟,这些看似随机的问题背后往往隐藏着一个共同的元凶——通信丢包。ROS2的QoS(Quality …...

Veeam Recovery Orchestrator 13 P1 (Windows) - 恢复编排

Veeam Recovery Orchestrator 13 P1 (Windows) - 恢复编排 Veeam Data Platform | 面向混合云和多云的 备份和恢复 监控和分析 恢复编排 请访问原文链接:https://sysin.org/blog/veeam-recovery-orchestrator-13/ 查看最新版。原创作品,转载请保留出处…...

G-Helper实战指南:华硕笔记本性能调优与硬件管理深度解析

G-Helper实战指南:华硕笔记本性能调优与硬件管理深度解析 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix,…...

解密Cursor Free VIP:AI编程助手无限使用实战指南

解密Cursor Free VIP:AI编程助手无限使用实战指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial r…...

STM32F103ZET6【标准库函数开发】-----TM1638模块驱动4位8段共阴极数码管

1. 硬件环境搭建 第一次接触TM1638模块时,我手头正好有块吃灰的正点原子战舰开发板。这个组合对初学者特别友好,就像乐高积木一样容易上手。先说说需要准备的硬件清单: 正点原子STM32F103ZET6开发板(其他型号也行,但引…...

Selenium—xpath定位方法

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 今天我们来聊聊selenium -- xpath定位方法,我们都知道selenium有八大定位策略分别是id、name、class name、tag name、link text、partial link text、…...

用Python和PyTorch手把手搭建你的第一个脉冲神经网络(SNN)模型

用Python和PyTorch手把手搭建你的第一个脉冲神经网络(SNN)模型 当你第一次听说"脉冲神经网络"时,脑海中可能会浮现出科幻电影里那些会思考的机器。但事实上,这种模拟生物神经元工作方式的算法已经悄然走进现实。作为一名…...

Anthropic Claude Code源代码意外泄露:npm打包失误暴露512,000行闭源代码

2026年3月31日,Anthropic公司一名员工在向npm公开注册账户发布AI编程工具Claude Code(版本2.1.88)时,意外捆绑了源映射(source map)文件,导致该闭源代理式编码工具的完整专有源代码完全暴露。 …...

3大核心功能解锁QtScrcpy:实现跨平台Android设备高效控制

3大核心功能解锁QtScrcpy:实现跨平台Android设备高效控制 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy QtScrcpy是一款开源的跨平台Android实时显示与控制工具&#x…...

SOONet模型AI编程助手实践:根据代码注释自动定位相关教学视频片段

SOONet模型AI编程助手实践:根据代码注释自动定位相关教学视频片段 1. 引言 你有没有过这样的经历?在IDE里写代码,遇到一个不太熟悉的函数或者算法,比如“快速排序”,你停下来想查查资料。通常的做法是,要…...

Phi-4-mini-reasoning效果展示:国际奥赛风格数学题全自动分步求解演示

Phi-4-mini-reasoning效果展示:国际奥赛风格数学题全自动分步求解演示 1. 模型介绍 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这款模型主打"小参数、强推理、长上下文、低延迟…...

OpenClaw+Qwen3-14b_int4_awq低成本方案:自建模型替代SaaS API

OpenClawQwen3-14b_int4_awq低成本方案:自建模型替代SaaS API 1. 为什么选择自建模型替代商业API 去年我开始使用OpenClaw进行个人自动化项目时,第一个遇到的问题就是Token消耗成本。当时我使用的是某商业API,一个简单的文件整理任务就消耗…...

如何快速下载m3u8加密视频:Python下载器的完整使用指南

如何快速下载m3u8加密视频:Python下载器的完整使用指南 【免费下载链接】m3u8_downloader 项目地址: https://gitcode.com/gh_mirrors/m3/m3u8_downloader 你是否曾想保存在线课程、收藏精彩视频,却因为复杂的加密技术而束手无策?面对…...

Stable Yogi Leather-Dress-Collection企业应用:服装品牌AI趋势图快速验证系统

Stable Yogi Leather-Dress-Collection企业应用:服装品牌AI趋势图快速验证系统 1. 项目概述 Stable Yogi Leather-Dress-Collection是一款专为服装品牌设计的AI趋势图快速验证工具,基于先进的Stable Diffusion技术开发。这个工具能够帮助设计师和品牌快…...

Qwen3.5-9B多模态应用:上传招聘JD截图生成面试问题+考察点分析

Qwen3.5-9B多模态应用:上传招聘JD截图生成面试问题考察点分析 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,具备强大的多模态理解能力。该模型特别适合处理需要结合文本和图像信息的任务,比如从招聘JD截图中提取关键信息并生…...

intv_ai_mk11零基础上手:不装软件、不写代码、不开终端,纯浏览器操作

intv_ai_mk11零基础上手:不装软件、不写代码、不开终端,纯浏览器操作 1. 为什么选择intv_ai_mk11 想象一下,你正在准备一份重要报告,突然需要一段专业的内容摘要;或者你在写营销文案时卡壳了,需要一些创意…...

雀魂AI助手Akagi:从入门到精通的智能麻将辅助工具全指南

雀魂AI助手Akagi:从入门到精通的智能麻将辅助工具全指南 【免费下载链接】Akagi 支持雀魂、天鳳、麻雀一番街、天月麻將,能夠使用自定義的AI模型實時分析對局並給出建議,內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Ama…...

解析Android Studio中文适配困局:社区语言包的技术架构与部署实践

解析Android Studio中文适配困局:社区语言包的技术架构与部署实践 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 在A…...

新手避坑指南:用STM32F407和AS5600给无刷电机做FOC驱动,从硬件选型到代码调试全流程

STM32F407AS5600无刷电机FOC驱动实战:从零搭建到参数调优全解析 1. 硬件选型与电路设计避坑指南 选择适合的硬件组合是FOC驱动项目成功的第一步。对于刚接触无刷电机控制的开发者来说,市面上琳琅满目的开发板和电机型号往往让人眼花缭乱。经过多次项目…...

Asian Beauty Z-Image Turbo实战:用nvidia-smi监控显存,小白也能轻松调优

Asian Beauty Z-Image Turbo实战:用nvidia-smi监控显存,小白也能轻松调优 如果你正在使用Asian Beauty Z-Image Turbo生成东方风格人像,是否遇到过生成过程中程序突然崩溃,或者生成速度越来越慢的情况?这些问题的罪魁…...

优化TJpgDec在MM32F5微控制器上的图像解码性能 - 基于MindSDK的实践探索

1. TJpgDec在嵌入式系统中的独特价值 第一次接触TJpgDec是在三年前的一个智能家居项目里,当时需要在资源受限的STM32F407上实现图片显示功能。市面上常见的JPEG解码库要么体积庞大,要么对内存要求极高,直到发现了ChaN开发的这个轻量级解决方案…...

Win11 WSL 下玩转 CentOS 7:两种安装方法全攻略(附常见问题解决)

Win11 WSL 下玩转 CentOS 7:两种安装方法全攻略(附常见问题解决) 在Windows 11上使用WSL运行CentOS 7,为开发者提供了在Windows环境下无缝使用Linux工具链的绝佳方案。不同于官方商店提供的有限发行版,CentOS 7以其企…...

突破Cursor API限制:cursor-free-vip实现无限制Pro功能的技术解析

突破Cursor API限制:cursor-free-vip实现无限制Pro功能的技术解析 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reach…...

Notepad-- 终极中文编辑器:从零开始打造你的专属高效文本工作流

Notepad-- 终极中文编辑器:从零开始打造你的专属高效文本工作流 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- …...

百考通:AI精准驱动数据分析,让数据价值更具人工写作的温度与逻辑

在数字化浪潮席卷各行各业的今天,数据已成为核心生产要素,但如何从海量数据中挖掘价值、辅助决策,始终是企业与个人面临的核心难题。传统数据分析流程繁琐、技术门槛高、周期漫长,让许多非专业人士望而却步。百考通(ht…...

大麦网抢票自动化工具:5分钟快速上手完整指南

大麦网抢票自动化工具:5分钟快速上手完整指南 【免费下载链接】damaihelper 支持大麦网,淘票票、缤玩岛等多个平台,演唱会演出抢票脚本 项目地址: https://gitcode.com/gh_mirrors/dam/damaihelper 你是否曾经因为抢不到心仪的演唱会门…...

百考通:AI精准赋能,让每一份调研与设计更具人工写作的温度与逻辑

在数字化时代,市场调研、产品设计、学术研究等场景中,问卷设计作为核心环节,直接影响着数据收集的质量与工作推进的效率。传统问卷设计往往面临流程繁琐、耗时耗力、问题设计不精准等痛点,而百考通(https://www.baikao…...