Docker 替换到 Containerd (nerdctl相关指令)
因为docker不给用了,所以使用Containerd来代替
前置准备
安装 Containerd
# 安装 containerd
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y containerd.io
# 生成默认配置文件
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml# 启动 containerd
systemctl start containerd
systemctl enable containerd
迁移步骤
1. 备份数据
# 创建备份目录
mkdir -p /backup/docker# 导出所有 Docker 镜像
for image in $(docker images --format "{{.Repository}}:{{.Tag}}"); dodocker save $image > "/backup/docker/${image//\//_}.tar"
done# 导出容器数据卷
docker run --rm --volumes-from <container_name> -v /backup/docker:/backup busybox tar cvf /backup/data.tar /data
2. 导入镜像到 Containerd
# 安装 nerdctl (Containerd 的命令行工具)
wget https://github.com/containerd/nerdctl/releases/download/v0.22.2/nerdctl-0.22.2-linux-amd64.tar.gz
tar xvf nerdctl-0.22.2-linux-amd64.tar.gz
mv nerdctl /usr/local/bin/# 导入镜像
for tar in /backup/docker/*.tar; doctr images import $tar
done
3. 运行容器配置
- 获取 Docker 容器配置:
# 导出容器配置
docker inspect <container_name> > container_config.json
- 创建对应的 Containerd 容器:
# 使用 nerdctl 创建容器,运行容器时只需要把平时用的docker run 换成nerdctl run就可以,参数和使用docker run基本一致
nerdctl run \--name <new_container_name> \--volume /path/to/data:/container/path \--network <network_name> \--env-file <env_file> \<image_name>
5. 验证
# 检查容器状态
nerdctl ps -a# 检查服务可用性
curl http://localhost:<port># 检查日志
nerdctl logs <container_name>
基础命令
1. 容器管理
# 运行容器
nerdctl run [选项] 镜像名 [命令]
# 示例:运行 Nginx
nerdctl run -d --name mynginx -p 80:80 nginx# 常用运行选项:
-d, --detach # 后台运行
-p, --publish # 端口映射
-v, --volume # 挂载数据卷
--name # 指定容器名
--rm # 容器停止后自动删除
-e, --env # 设置环境变量
--network # 指定网络
2. 容器操作
# 查看运行中的容器
nerdctl ps
# 查看所有容器(包括已停止的)
nerdctl ps -a# 启动/停止/重启容器
nerdctl start 容器名或ID
nerdctl stop 容器名或ID
nerdctl restart 容器名或ID# 删除容器
nerdctl rm 容器名或ID
# 强制删除运行中的容器
nerdctl rm -f 容器名或ID# 查看容器日志
nerdctl logs 容器名或ID
# 实时查看日志
nerdctl logs -f 容器名或ID# 进入容器
nerdctl exec -it 容器名或ID /bin/bash
3. 镜像管理
# 查看本地镜像
nerdctl images# 拉取镜像
nerdctl pull 镜像名:标签# 推送镜像到仓库
nerdctl push 镜像名:标签# 删除镜像
nerdctl rmi 镜像名:标签# 构建镜像
nerdctl build -t 镜像名:标签 .# 保存和加载镜像
nerdctl save 镜像名:标签 > image.tar
nerdctl load < image.tar
高级功能
1. 网络管理
# 查看网络列表
nerdctl network ls# 创建网络
nerdctl network create 网络名
# 示例:创建自定义网络
nerdctl network create mynetwork# 删除网络
nerdctl network rm 网络名# 连接容器到网络
nerdctl network connect 网络名 容器名# 断开容器与网络的连接
nerdctl network disconnect 网络名 容器名
2. 数据卷管理
# 查看数据卷
nerdctl volume ls# 创建数据卷
nerdctl volume create 卷名# 删除数据卷
nerdctl volume rm 卷名# 查看数据卷详情
nerdctl volume inspect 卷名
3. 容器资源限制
# 限制内存使用
nerdctl run -m 512m 镜像名# 限制 CPU 使用
nerdctl run --cpus 2 镜像名# 限制 CPU 份额
nerdctl run --cpu-shares 512 镜像名
4. 容器编排
# 使用 compose 启动服务
nerdctl compose up -d# 停止 compose 服务
nerdctl compose down# 查看 compose 服务状态
nerdctl compose ps
实用技巧
1. 容器监控
# 查看容器资源使用情况
nerdctl stats# 查看容器详细信息
nerdctl inspect 容器名或ID
2. 镜像管理技巧
# 清理未使用的镜像
nerdctl image prune# 清理所有未使用的资源
nerdctl system prune# 查看镜像历史
nerdctl history 镜像名:标签
3. 文件传输
# 从容器复制文件到主机
nerdctl cp 容器名:/容器内路径 主机路径# 从主机复制文件到容器
nerdctl cp 主机文件路径 容器名:/容器内路径
常见问题解决
- 容器无法访问网络:
# 检查网络配置
nerdctl inspect 容器名 | grep -i network
- 容器启动失败:
# 查看详细错误信息
nerdctl events
nerdctl logs 容器名
- 存储空间问题:
# 清理未使用的数据
nerdctl system prune -a --volumes
最佳实践
- 使用
--rm参数运行临时容器 - 总是给容器命名,便于管理
- 使用数据卷而不是绑定挂载
- 定期清理未使用的资源
- 使用 compose 文件管理多容器应用
相关文章:
Docker 替换到 Containerd (nerdctl相关指令)
因为docker不给用了,所以使用Containerd来代替 前置准备 安装 Containerd # 安装 containerd yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y containerd.io # 生成默认配置文件 mkdir -p…...
Ollama API 参考文档
文档来源:API 参考文档 -- Ollama 中文文档|Ollama官方文档 端点 生成完成生成聊天完成创建模型列出本地模型显示模型信息复制模型删除模型拉取模型推送模型生成嵌入列出正在运行的模型版本...
PHP房屋出租出售高效预约系统小程序源码
🏠 房屋出租出售高效预约系统 —— 您的智能找房新选择 💡 这是一款集智慧与匠心于一体的房屋出租出售预约系统,它巧妙地融合了ThinkPHP与Uniapp两大先进框架,精心打造而成。无论是小程序、H5网页,还是APP端ÿ…...
学习threejs,使用MeshBasicMaterial基本网格材质
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshBasicMaterial 二…...
Kafka Connect 功能介绍
Kafka Connect 是一款用于在 Apache Kafka 和其他系统之间进行数据传输的工具,它提供了以下功能: 1. 通用框架 标准化集成:Kafka Connect 提供了一个通用框架,用于将其他数据系统与 Kafka 集成,简化了连接器的开发、部署和管理。支持多种数据系统:可以快速定义连接器,将…...
从卡顿到丝滑:火山引擎DeepSeek-R1引领AI工具新体验
方舟大模型体验中心全新上线,免登录体验满血联网版Deep Seek R1 模型及豆包最新版模型:https://www.volcengine.com/experience/ark?utm_term202502dsinvite&acDSASUQY5&rcGO9H7M38 告别DeepSeek卡顿,探索火山引擎DeepSeek-R1的丝滑之旅 在A…...
Vulnhub-node靶机教学
本篇文章旨在为网络安全渗透测试靶机教学。通过阅读本文,读者将能够对渗透Vulnhub系列node靶机有一定的了解 一、信息收集阶段 靶机下载地址:https://www.vulnhub.com/entry/node-1,252 因为靶机为本地部署虚拟机网段,查看dhcp地址池设置。得…...
php处理图片出现内存溢出(Allowed memory size of 134217728 bytes exhausted)
错误: 最近做图片上传功能时发现上传某些图片时报内存溢出错误。如下所示: {"code": 0,"msg": "Allowed memory size of 134217728 bytes exhausted (tried to allocate 24576 bytes)","data": {"code&q…...
网络IP跳动问题解决详
一、问题原因分析 DHCP服务器配置问题: DHCP服务器租期设置过短。 DHCP地址池范围过小,导致地址耗尽。 网络中可能存在多个DHCP服务器,导致IP分配冲突。 网络中存在IP地址冲突: 手动配置的IP地址与DHCP分配的地址冲突。 网络中存在未经授权的DHCP服…...
Linux firewalld 常用命令
本文参考RedHat官网文章How to configure a firewall on Linux with firewalld。 Firewalld 是守护进程名,对应命令为firewall-cmd。帮助详见以下命令: $ firewall-cmd --helpUsage: firewall-cmd [OPTIONS...]General Options-h, --help Pr…...
LeetCode 热题 100 49. 字母异位词分组
LeetCode 热题 100 | 49. 字母异位词分组 大家好,今天我们来解决一道经典的算法题——字母异位词分组。这道题在LeetCode上被标记为中等难度,要求我们将字母异位词组合在一起。下面我将详细讲解解题思路,并附上Python代码实现。 问题描述 给…...
从 DeepSeek 到飞算 JavaAI:AI 开发工具如何重塑技术生态?
在科技飞速发展的当下,AI 开发工具正以前所未有的态势重塑技术生态。从备受瞩目的 DeepSeek 到崭露头角的飞算 JavaAI,它们在不同维度上推动着软件开发领域的变革,深刻影响着开发者的工作方式与行业发展走向。 DeepSeek:AI 开发领…...
OceanBase 初探学习历程之二——操作系统参数最佳实践
本文章分享OB操作系统参数最佳实践值,相关参数部分来自PK项目得知,仅供参考,实际参数设置仍需结合现有设备条件及业务系统特点是否有必要如此设置,但我任务大部分场景均可用(仅本人个人观点)。 1、磁盘配置…...
全面指南:使用JMeter进行性能压测与性能优化(中间件压测、数据库压测、分布式集群压测、调优)
目录 一、性能测试的指标 1、并发量 2、响应时间 3、错误率 4、吞吐量 5、资源使用率 二、压测全流程 三、其他注意点 1、并发和吞吐量的关系 2、并发和线程的关系 四、调优及分布式集群压测(待仔细学习) 1.线程数量超过单机承载能力时的解决…...
《机器学习实战》专栏 No12:项目实战—端到端的机器学习项目Kaggle糖尿病预测
《机器学习实战》专栏 第12集:项目实战——端到端的机器学习项目Kaggle糖尿病预测 本集为专栏最后一集,本专栏的特点是短平快,聚焦重点,不长篇大论纠缠于理论,而是在介绍基础理论框架基础上,快速切入实战项…...
【vue项目中如何实现一段文字跑马灯效果】
在Vue项目中实现一段文字跑马灯效果,可以通过多种方式实现,以下是几种常见的方法: 方法一:使用CSS动画和Vue数据绑定 这种方法通过CSS动画实现文字的滚动效果,并结合Vue的数据绑定动态更新文本内容。 步骤ÿ…...
DeepSeek 细节之 MLA (Multi-head Latent Attention)
DeepSeek 系统模型的基本架构仍然基于Transformer框架,为了实现高效推理和经济高效的训练,DeepSeek 还采用了MLA(多头潜在注意力)。 MHA(多头注意力)通过多个注意力头并行工作捕捉序列特征,但面临高计算成本…...
Python爬虫具体是如何解析商品信息的?
在使用Python爬虫解析亚马逊商品信息时,通常会结合requests库和BeautifulSoup库来实现。requests用于发送HTTP请求并获取网页内容,而BeautifulSoup则用于解析HTML页面并提取所需数据。以下是具体的解析过程,以按关键字搜索亚马逊商品为例。 …...
lerobot调试记录
这里写自定义目录标题 libtiff.so undefined symbol libtiff.so undefined symbol anaconda3/envs/lerobot3/lib/python3.10/site-packages/../.././libtiff.so.6: undefined symbol: jpeg12_write_raw_data, version LIBJPEG_8.01.安装库 conda install -c conda-forge jpeg …...
【Word转PDF】在线Doc/Docx转换为PDF格式 免费在线转换 功能强大好用
在日常办公和学习中,将Word文档转换为PDF格式的需求非常普遍。无论是制作简历、撰写报告还是分享文件,都需要确保文档格式在不同设备上保持一致。而小白工具的“Word转PDF”功能正是为此需求量身打造的一款高效解决方案。 【Word转PDF】在线Doc/Docx转换…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
