安装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.下载

bash 复制代码
wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz

2.解压

bash 复制代码
tar xzvf docker-20.10.9.tgz
\cp -rp /root/docker/* /usr/local/bin

3.systemd方式启动

bash 复制代码
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.下载

bash 复制代码
wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.0.tgz

2.停止docker

bash 复制代码
systemctl stop docker

3.备份

bash 复制代码
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.替换版本

bash 复制代码
\cp -rp /root/docker/* /usr/local/bin

5.只需换

bash 复制代码
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 引擎交互的主要工具。其他工具和进程则支持这些核心功能。

相关推荐
学传打活2 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续3)
微信公众平台·1024程序员节·汉字·昆仑正义文化
学传打活7 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
fangzhanpeng16815 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心17 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552723 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552723 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝24 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552725 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552725 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055271 个月前
Java实用类应用精讲
人工智能·1024程序员节