docker引擎

news2025/1/13 10:19:10

目录

一、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:latest

Hello 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 the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share 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.coloradmin.cn/o/1523964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python二级备考(2)-简单应用题

第1套 使用turtle库的turtle. right()函数和turtle.fd()函数绘制一个菱形,边长为200像素,4个内角度数为2个60度和2个120度 键盘输入一组人员的姓名、性别、年龄等信息,信息间采用空格分隔,每人一行,空行回车结束录入&a…

无人机机载频谱监测方案助力空中频谱监测与干扰排查

作者介绍 一、方案背景 频谱资源是通信最重要的资产之一,随着宽带无线业务的快速增长,对频率资源的需求大幅增加。未来频率资源的供需矛盾将非常突出,空中频谱环境也会越来越复杂,对于工程师来说,在复杂的电磁环境条件…

Unload-labs-pass-03

这里是设置了黑名单不能传.asp.aspx.php.jsp文件 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array(.asp,.aspx,.php,.jsp);$file_name trim($_FILES[upload_file][name]);$file_name deldot($file_name);//删…

GPT-4.5 Turbo详细信息被搜索引擎泄露:有重大改进

3月14日消息,据外电报道,OpenAI 最新人工智能模型 GPT-4.5 Turbo 的详细信息已通过 Bing 和 DuckDuckGo 的搜索引擎索引过早泄露。 GPT-4.5 Turbo 的产品页面在正式发布之前就出现在搜索结果中,引发了人们对 OpenAI 最新型号的特性和功能的猜…

0基础 三个月掌握C语言(11)

字符函数和字符串函数 为了方便操作字符和字符串 C语言标准库中提供了一系列库函数 接下来我们学习一下这些函数 字符分类函数 C语言提供了一系列用于字符分类的函数,这些函数定义在ctype.h头文件中。这些函数通常用于检查字符是否属于特定的类别,例如…

怎么在空闲时间用网络赚钱且收入不低于50?

何其有幸,我们生活在一个网络时代,买东西,生活缴费都可以通过网络来完成,给大家省下了大量的时间和精力,让生活更加便利。不仅如此,还可以通过网络来娱乐、交流,更可以通过它来赚钱。很多朋友上…

嵌入式学习39-程序创建数据库及查找

1.sqlite3_open int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); 功能: 打开 数据库文件(创建一个数据库连接) 参数: filename: …

[java基础揉碎]断点调试

一个实际需求: 1.在开发中,新手程序员在查找错误时,这时老程序员就会温馨提示,可以用断点调试, 一步一步的看源码执行的过程,从而发现错误所在。 2.重要提示:在断点调试过程中,是运行状态,是以…

【NBUOJ刷题笔记】递推_递归+分治策略2

0. 前言 PS:本人并不是集训队的成员,因此代码写的烂轻点喷。。。本专题一方面是巩固自己的算法知识,另一方面是给NBU学弟学妹们参考解题思路(切勿直接搬运抄袭提交作业!!!)最后&…

【Web开发】CSS教学(超详细,满满的干货)

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录文章:【Web开发】CSS教学(超详细,满满的干货) 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 CSS一. 什么是CSS?1.1 基本语法规范1.2 引入方式1.3 规范 二. CSS选…

JavaScript练手小技巧:数字反转时钟

样式基于博主的这篇文章: CSS3技巧38:3D 翻转数字效果-CSDN博客 既然可以实现翻转数字了,肯定就可以跟 JS 相结合去完成一些数字展示效果。 比如,数字反转时钟。 为了方便,所有 HTML 数字根据时间动态生成。因此&a…

从排序算法的艺术看C语言qsort函数的魅力:一场数据的时空穿越

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看,已成习惯 创作不易,多多支持! 目录 一 、回调函数 二、qsort函数 1.qsort函数排序整型数据 2.qsort函数排序结构数据 一 、回调函数 何为回调函数&#xff1…

【JS进阶】第一天

参考视频——黑马程序员 JavaScript 进阶 - 第 1 天 学习作用域、变量提升、闭包等语言特征,加深对 JavaScript 的理解,掌握变量赋值、函数声明的简洁语法,降低代码的冗余度。 理解作用域对程序执行的影响能够分析程序执行的作用域范围理解闭…

三维坐标系之间的转换

一、概括 这个完全是抄别人的,给我自己看的主要是想当我要看的时候我直接能找到,而不用再去网上搜索,后期会吧代码更新上去。 彻底搞懂“旋转矩阵/欧拉角/四元数”,让你体会三维旋转之美_欧拉角判断动作-CSDN博客 在不同的坐标…

Python语法糖

N u m P y NumPy NumPy的 n d i t e r nditer nditer nditer 是 NumPy 提供的一种多维迭代器,用于对多维数组进行迭代操作。它可以替代传统的嵌套循环,在处理多维数组时更加方便和高效。 迭代器可以按照不同的顺序遍历数组的元素,也可以控制…

✅技术社区—通过Canal框架实现MySQL与ElasticSearch的数据同步

Canal 是一个由阿里巴巴开源的,基于 Java 的数据库变更日志解析的中间件,其原理是基于Binlog订阅的方式实现,模拟一个MySQL Slave 订阅Binlog日志,从而实现CDC,主要用于实现 MySQL 数据库的增量数据同步。它主要的使用…

Linux:PostGreSQL|PostGIS部署

由于更换了云服务器,需要重新部署PostGreSQL|PostGIS,所以记录一下Linux CentOS 7 x86-64环境下,PostGreSQL|PostGIS的部署过程。 参考文档:PostgreSQL: Linux downloads (Red Hat family)。 yum安装PostGreSQL 通过yum安装PostG…

PC-DARTS: PARTIAL CHANNEL CONNECTIONS FOR MEMORY-EFFICIENT ARCHITECTURE SEARCH

PC-DARTS:用于内存高效架构搜索的部分通道连接 论文链接:https://arxiv.org/abs/1907.05737 项目链接:https://github.com/yuhuixu1993/PC-DARTS ABSTRACT 可微分体系结构搜索(DARTS)在寻找有效的网络体系结构方面提供了一种快速的解决方案…

网络编程-套接字相关基础知识

1.1. Socket简介 套接字&#xff08;socket&#xff09;是一种通信机制&#xff0c;凭借这种机制&#xff0c; 客户端<->服务器 模型的通信方式既可以在本地设备上进行&#xff0c;也可以跨网络进行。 Socket英文原意是“孔”或者“插座”的意思&#xff0c;在网络编程…

ROS——ROS安装遇到的问题

1、添加ROS软件源 打开终端&#xff0c;将下面这条命令复制到ubuntu的终端执行 sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list2、添加密钥 …