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

安装docker ,更换docker版本

docker

dockerd & containerd

Dockerd(Docker 守护进程)在其底层使用 Containerd 来管理容器。Containerd 是一个开源的容器运行时管理器,由 Docker 公司于2017年开发并开源,它负责实际的容器生命周期管理。
以下是 Docker 守护进程(dockerd)和 Containerd 之间的关系:
Dockerd(Docker 守护进程):Dockerd 是 Docker 引擎的核心组件,负责处理 Docker 命令、容器镜像的构建和运行、容器网络配置、日志记录等高级 Docker 功能。Dockerd 不直接处理容器的详细生命周期管理。
Containerd:Containerd 是一个更低级别的容器运行时管理器,它提供了容器的基本生命周期管理,例如容器的创建、启动、停止、销毁以及容器与 Dockerd 之间的通信。Containerd 本身是面向容器的标准化运行时,它可以与不同的容器编排系统集成,而不仅限于 Docker。
Dockerd 和 Containerd 之间的关系可以看作是 Docker 引擎的高级组件和低级组件之间的关系。Dockerd 使用 Containerd 来执行容器的基本操作,而 Dockerd 本身则添加了更多高级特性和用户友好的 CLI 界面。
这个分层的体系结构使得 Docker 引擎更加灵活,可以用于不同的容器编排系统,而不仅仅是 Docker Compose 和 Kubernetes。此外,Containerd 的开源性质也使得容器运行时变得更加标准化和可扩展。

1.二进制安装docker

二进制docker引擎下载
1.下载

wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz

2.解压

tar xzvf docker-20.10.9.tgz
\cp -rp /root/docker/* /usr/local/bin

3.systemd方式启动

cat >/etc/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.io
[Service]
OOMScoreAdjust=-1000
Environment="PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin"
ExecStart=/usr/local/bin/dockerd
ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
ExecReload=/bin/kill -s HUP \$MAINPID
Restart=on-failure
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl {start,enable} docker

docker升级版本
1.下载

wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.0.tgz

2.停止docker

systemctl stop docker

3.备份

cd /usr/local/bin
tar -cvzf docker-all.tar containerd containerd-shim containerd-shim-runc-v2 ctr docker dockerd docker-init docker-proxy runc

4.替换版本

\cp -rp /root/docker/* /usr/local/bin

5.只需换

dockerd 和 docker 这两个二进制文件,而不需要手动更改 Docker 引擎的其他内部组件的二进制文件。

在这里插入图片描述

干啥的

containerd

containerd 是一个基础的容器运行时管理器,它负责管理容器的生命周期,包括创建、启动、停止和删除容器。Docker 使用 containerd 作为其底层容器运行时。

containerd-shim

containerd-shim 是 containerd 的一部分,它是一个代理进程,用于与容器进程进行通信和管理。每个正在运行的容器都有一个关联的 containerd-shim 进程,它负责将容器的 I/O 转发到容器的标准输入、输出和错误,并处理容器的生命周期事件。

containerd-shim-runc-v2

这是 containerd-shim 使用的运行时插件,通常是 runc 的一部分,用于管理容器的执行。runc 是一个开源工具,用于创建和运行容器。

ctr

ctr 是 Docker 的客户端工具,它用于与 containerd 进行通信并执行容器相关的操作,如创建、启动、停止、删除容器等。

docker

docker 命令行工具,也被称为 Docker CLI。它是 Docker 的主要命令行界面,允许用户管理 Docker 容器和镜像,创建和运行容器,构建和推送镜像等。

dockerd

dockerd 是 Docker 的守护进程,也被称为 Docker 引擎。它负责管理 Docker 容器和镜像,监听 Docker CLI 的命令,并执行相应的操作。dockerd 运行时会与 containerd 集成,以实现容器的创建和运行。

docker-init

docker-init 是一个小型初始化进程,通常与 Docker 容器一起使用。它有助于创建容器的 PID 命名空间,设置正确的容器环境,并最终执行容器中的用户指定的进程。

docker-proxy

docker-proxy 是一个代理进程,用于将流量从容器网络命名空间转发到宿主机网络命名空间。这允许容器内的服务可以通过主机的 IP 地址和端口号进行访问。

runc

runc 是一个标准的容器运行时工具,它用于创建和运行 OCI(Open Container Initiative)兼容的容器。Docker 使用 runc 作为其默认容器运行时。

这些二进制文件和工具协同工作,以实现容器的创建、管理和运行。dockerd 是 Docker 引擎的核心,而 containerd 负责底层容器管理,runc 负责容器执行,docker 是用户与 Docker 引擎交互的主要工具。其他工具和进程则支持这些核心功能。

相关文章:

安装docker ,更换docker版本

docker dockerd & containerd Dockerd&#xff08;Docker 守护进程&#xff09;在其底层使用 Containerd 来管理容器。Containerd 是一个开源的容器运行时管理器&#xff0c;由 Docker 公司于2017年开发并开源&#xff0c;它负责实际的容器生命周期管理。 以下是 Docker 守…...

英语小作文写作模板及步骤(1)

...

编写hello驱动程序

hello的驱动编写 编写驱动程序的步骤 1.确定主设备号&#xff0c;也可以让内核分配 2.定义自己的 file_operations 结构体 3.实现对应的 drv_open/drv_read/drv_write 等函数&#xff0c;填入 file_operations 结构 体 4.把 file_operations 结构体告诉内核&#xff1a;regist…...

ZYNQ中断例程

GPIO 中断系统初始化流程&#xff1a; 第一步:初始化 cpu 的异常处理功能 第二步&#xff1a;初始化中断控制器 第三步&#xff1a;向 CPU 注册异常处理回调函数&#xff1b; 第四步&#xff1a;将中断控制器中的对应中断 ID 的中断与中断控制器相连接 第五步&#xff1a;设置 …...

常用linux命令 linux_cmd_sheet

查看文件大小 ls -al 显示每个文件的kb大小 查看系统日志 dmesg -T | tail 在 top 命令中&#xff0c;RES 和 VIRT&#xff08;或者 total-vm&#xff09;是用来表示进程内存使用的两个不同指标&#xff0c;它们之间有以下区别&#xff1a; RES&#xff08;Resident Set Size…...

【proteus】8086 写一个汇编程序并调试

参考书籍&#xff1a;微机原理与接口技术——基于8086和Proteus仿真&#xff08;第3版&#xff09;p103-105&#xff0c;p119-122. 参考程序是p70&#xff0c;例4-1 在上一篇的基础上&#xff1a; 创建项目和汇编文件 写一个汇编程序并编译 双击8086的元件图&#xff1a; …...

大数据之LibrA数据库常见术语(四)

Failover 指当某个节点出现故障时&#xff0c;自动切换到备节点上的过程。反之&#xff0c;从备节点上切换回来的过程称为Failback。 Freeze 在事务ID耗尽时由AutoVacuum Worker进程自动执行的操作。FusionInsight LibrA会把事务ID记在行头&#xff0c;在一个事务取得一行时&…...

Docker基础知识

文章目录 Docker Docker 一次构建&#xff0c;处处运行&#xff0c;类似于JVM 虚拟机是软件硬件&#xff08;需要Hypervisors实现硬件资源虚拟化&#xff09;&#xff1a; 资源占用大启动慢&#xff08;虚拟机是分钟级&#xff0c;Docker是秒级&#xff09;冗余步骤多 sha2…...

swoole 是什么?

Swoole是一个为PHP用C和C编写的基于事件的高性能异步& 协程并行网络通信引擎; 使 PHP 开发人员可以编写高性能的协程 TCP、UDP、Unix Socket、HTTP&#xff0c;WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网&#xff08;IO…...

我想要一个勋章

目录 一、背景二、过程三、总结 一、背景 十年前结缘&#xff0c;也许是冥冥中自有天注定&#xff0c;注定要给自己多加一个今天的节日。 二、过程 一个勋章&#xff0c;一个有意义的标志。 一个勋章&#xff0c;一个时间轮上的帧。 一个勋章&#xff0c;一个二进制的节点。…...

微信小程序设计之主体文件app-json-pages

一、新建一个项目 首先&#xff0c;下载微信小程序开发工具&#xff0c;具体下载方式可以参考文章《微信小程序开发者工具下载》。 然后&#xff0c;注册小程序账号&#xff0c;具体注册方法&#xff0c;可以参考文章《微信小程序个人账号申请和配置详细教程》。 在得到了测…...

C语言-面试题实现有序序列合并

要求&#xff1a; a.输入两个升序排列的序列&#xff0c;将两个序列合并为一个有序序列并输出。 数据范围&#xff1a; 1≤n,m≤1000 1≤n,m≤1000 &#xff0c; 序列中的值满足 0≤val≤30000 输入描述&#xff1a; 1.输入包含三行&#xff0c; 2.第一行包含两个正整数n, m&am…...

Android12 启动页适配

印象中&#xff0c;在2022年末接到了一个针对Android12启动页适配的需求&#xff0c;当时也使用了一些适配方案&#xff0c;也写了一个Demo&#xff0c;但是最终没有付诸适配行动&#xff1b;当然并不是适配失败&#xff0c;而是根据官方适配方案适配后太丑了… 1024纪念文章&a…...

【微服务保护】初识 Sentinel —— 探索微服务雪崩问题的解决方案,Sentinel 的安装部署以及将 Sentinel 集成到微服务项目

文章目录 前言一、雪崩问题及其解决方案1.1 什么是雪崩问题1.2 雪崩问题的原因1.3 解决雪崩问题的方法1.4 总结 二、初识 Sentinel 框架2.1 什么是 Sentinel2.2 Sentinel 和 Hystrix 的对比 三、Sentinel 的安装部署四、集成 Sentinel 到微服务 前言 微服务架构在现代软件开发…...

20231023 比赛总结

比赛链接 反思 A 花了很长时间&#xff0c;幸亏没怎么调就对了&#xff0c;以后还是应该先看其他题的 括号匹配题的套路感觉没有掌握透&#xff0c;感觉无非就是单调栈&#xff0c;哈希&#xff0c;折线图 B 感觉比 T 1 T1 T1 简单 C 正解还是很妙的&#xff0c;但 68…...

Vite创建vue3+ts+pinia+vant项目起步流程

pnpm介绍&安装 本质上他是一个包管理工具&#xff0c;和npm/yarn没有区别&#xff0c;主要优势在于 包安装速度极快磁盘空间利用效率高 安装&#xff1a; npm i pnpm -g使用&#xff1a; npm命令pnpm等效npm installpnpm installnpm i axiospnpm add axiosnpm i webpa…...

JVM 类的加载子系统

文章目录 类的加载过程加载阶段链接阶段初始化 类的加载器测试代码中获取对应的加载器获取加载器加载的路径不同类对应的加载器自定义加载器自定义加载器的方式 获取类的加载器的方式双亲委派机制双亲委派机制的好处 Java 的 SPI 机制1. 接口定义2. 具体实现3. 配置 META-INF/s…...

什么是1024程序员节

一年一度专属于程序员的节日“1024程序员节”要到来了&#xff0c;相信有很多的小伙伴跟我一样&#xff0c;对这个节日非常的熟悉&#xff0c;但也有一下小伙伴对这个节日非常陌生&#xff0c;没事&#xff0c;下面由我来讲解一下1024程序员节。 目录 节日背景 节日由来 社…...

spark获取hadoop服务token

spark 作业一直卡在accepted 问题现象问题排查1.查看yarn app日志2.问题分析与原因 问题现象 通过yarn-cluster模式提交spark作业&#xff0c;客户端日志一直卡在submit app&#xff0c;没有运行 问题排查 1.查看yarn app日志 appid已生成&#xff0c;通过yarn查看app状态为…...

Simulink 最基础教程(一)

1.1基本概念 一个典型的Simulink模型大致如上图这样&#xff1a; 1&#xff09;模块 block&#xff1a;图中画圈的那些&#xff0c;每个模块可以完成一些特定的任务&#xff0c;类似MATLAB中函数的概念。软件提供了很多模块&#xff0c;当然也可以自定义新的模块 2&#xff0…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...

Linux-进程间的通信

1、IPC&#xff1a; Inter Process Communication&#xff08;进程间通信&#xff09;&#xff1a; 由于每个进程在操作系统中有独立的地址空间&#xff0c;它们不能像线程那样直接访问彼此的内存&#xff0c;所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...