docker引擎

news/2025/1/8 5:33:02/

目录

一、Docker引擎发展历程

二、docker引擎架构

三、docker引擎分类

四、docker引擎安装

4.1安装条件

4.2 使用rpm存储库安装

4.2.1设置存储库

4.2.2安装docker引擎

4.2.3启动docker,并设置docker开机自启动

五、卸载docker引擎

5.1.卸载 Docker 引擎、CLI、containerd 和 Docker Compose 包:

5..2主机上的映像、容器、卷或自定义配置文件 不会自动删除。要删除所有映像、容器和卷,需要执行以下操作:


一、Docker引擎发展历程

首发架构由两大核心组件构成:LXC(Linux Container)与Docker Daemon。

首发架构的两大问题:

1.严重依赖于LXC,出现了“卡脖子”问题,及无法实现Docker跨平台。所以在0.9版本使用了 Docker自研的Libcontainer替换了LXC。

2.Docker Daemon 中的“大而全”使得版本更新难、性能出现瓶颈、不符合软件哲学(由 Unix 团队提出),关键是,其还存在着“中心化”问题。所以在1.1版本中其实现了 OCI规范,将容器运行时Runc从Docker Daemon 中剥离了出来。

二、docker引擎架构

docker引擎是用来运行和管理容器的核心软件,其架构由五个部分组件组成:

docker client 、dockerd、Containerd、Runc、Shim

Docker Client:用户提交 Docker 命令。
Dockerd: 负责 REST API、处理镜像相关命令、网络、容器编排等。
Containerd:负责容器生命周期管理(负责处理容器相关的命令),但不负责创建容器。当docker run 命令到来时会fork出Runc与Shim两个进程。
Runc:负责创建容器进程,容器创建并启动完毕后,Runc将容器进程交付给Shim进程管理,然后自己退出。
Shim: 负责将容器与Docker Daemon进行解耦。

三、docker引擎分类

docker分为三大版本(Moby、CE、EE),俩个小版本(Edge、Statble)

 

四、docker引擎安装

4.1安装条件

要安装docker引擎,需要以下版本之一的维护版本Centos版本:

  • CentOS 7
  • CentOS 8 (stream)
  • CentOS 9 (stream)

4.2 使用rpm存储库安装

在新主机上首次安装 Docker 引擎之前,需要设置 Docker 存储库。之后,安装和更新存储库中的 Docker。

4.2.1设置存储库

安装软件包(提供实用程序)并设置存储库。yum-utils  yum-config-manager

使用阿里国内源安装docker

[root@localhost /]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
4.2.2安装docker引擎
[root@localhost /]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4.2.3启动docker,并设置docker开机自启动
[root@localhost /]# systemctl start docker
[root@localhost /]# systemctl enable docker

通过运行镜像来验证docker引擎是否安装成功。hello-world

[root@localhost /]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete 
Digest: sha256:6352af1ab4ba4b138648f8ee88e63331aae519946d3b67dae50c313c6fc8200f
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

成功安装并且启动了docker引擎。

 

五、卸载docker引擎

5.1.卸载 Docker 引擎、CLI、containerd 和 Docker Compose 包:

[root@localhost /]# yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin 

5..2主机上的映像、容器、卷或自定义配置文件 不会自动删除。要删除所有映像、容器和卷,需要执行以下操作:

[root@localhost /]# rm -rf /var/lib/docker
[root@localhost /]# rm -fr /var/lib/containerd

必须手动删除任何已编辑的配置文件。


http://www.ppmy.cn/news/1389495.html

相关文章

教务管理系统(java+mysql+jdbc+Druid+三层架构)

1、项目要求 1.1数据库表描述 设计一个教务管理系统,要求如下: 系统涉及的表有 account表(账号表) teacher表(教师表) student表(学生表) course表 (课程表) score表(成…

php用curl实现get请求的函数

当然&#xff0c;以下是一个使用PHP cURL库实现GET请求的函数示例&#xff1a; <?php function sendGetRequest($url, $params []) {// 初始化cURL会话$ch curl_init();// 如果提供了参数&#xff0c;则构建带参数的URLif (!empty($params)) {$url . ? . http_build_qu…

真正的行善是一种内心的修炼和升华

未开悟前&#xff0c;我怀揣着一颗炽热的心&#xff0c;以为自己在度化众生&#xff0c;肩负着拯救世界的重任。 那时的我&#xff0c;如同一位骄傲的船长&#xff0c;驾驶着自己的信念之船&#xff0c;在波涛汹涌的人生海洋中破浪前行。 我渴望通过行善积德&#xff0c;去帮…

记录对NSIS的一些微调 实现Electron安装包美化

利洽科技-nsNiuniuSkinUI - NSIS 实现了electron 的安装包美化&#xff0c;免费&#xff0c;便捷。 下面我整理了一些关于它的微调&#xff0c;使其安装卸载更加简单快捷。 1. 默认展示安装路径部分 &#xff08;1&#xff09;将moreconfiginfo标签visible 设置为 true&#…

迈向生成式几何 AI

AI 生成 360 图像。[原始图像由作者使用 CopernicAI 生成。 一、说明 近年来&#xff0c;能动人工智能取得了显著的进步&#xff0c;使机器能够生成图像、文本甚至音乐。然而&#xff0c;仍然缺少一些数据模式。那就是几何事物的生成。本篇注意这个事情并给出观点。 二、AI生…

基于javaweb(springboot)城市地名地址信息管理系统设计和实现

基于javaweb(springboot)城市地名地址信息管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

类和对象-2

文章目录 默认成员函数构造函数默认构造函数析构函数不同生命周期的构造、析构函数的执行顺序 默认成员函数 在c中&#xff0c;每个类里面都有六个默认成员函数。即便这个类什么都没有&#xff0c;也就是空类&#xff0c;也会有这六个成员函数。这些函数的存在极大的简化了代码…

C语言例3-27:使用条件运算符的例子

条件运算符的优先级&#xff1a; 其他运算符 优先于 条件运算符 优先于 赋值和复合赋值运算符 优先于 逗号运算符条件运算符的结合性是从右至左 条件运算符的一般使用形式&#xff1a; 表达式1&#xff1f;表达式2&#xff1a;表达式3 条件表达式的执行过程是先表达式1&…