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

2.Docker基本架构简介与安装实战

1.认识Docker的基本架构

下面这张图是docker官网上的,介绍了整个Docker的基础架构,我们根据这张图来学习一下docker的涉及到的一些相关概念。
在这里插入图片描述

1.1 Docker的架构组成

Docker架构是由Client(客户端)、Docker Host(服务端)、Registry(远程仓库)组成。

  • Client(客户端):使用Docker API向服务端发送命令,比如build、run、pull、push等命令;
  • Docker Host(服务端):启动了一个守护进程,它来真正管理镜像和容器,相应的,也接收客户端的命令;
  • Registry(远程仓库):主要就是存储镜像文件,方便共享,类似git一样。

Docker是一个Client-Server结构的系统,Docker守护进程运行的主机上,通过Socket连接从客户端访问,守护进程接收到客户端的命令来管理运行在主机上的容器。

1.2 Docker的三大要素

  • Image(镜像):Docker镜像就好比一个模板,可以通过这模板来创建容器服务,通过这个镜像可以创建多个容器。
  • container(容器):容器就可以理解成一个简易版的Linux运行时环境,在这个Linux中,还运行这我们的应用程序。
  • 仓库(repository):集中存放镜像文件的地方。仓库分为公开仓库和私有仓库,Docker官方的公开仓库是Docker Hub:https://hub.docker.com/。当然我们国内也有不少公开仓库,包括阿里云、网易云等;

那么怎么更好的理解这散打要素呢?学过java等面向对象编程的同学,我们可以类比一下,所谓的镜像其实就是对应java的类,容器就对应java的对象(类的实例),一个类可以new 出很多对象实例,同理,一个镜像也可以生成很多容器;仓库就可以类比Maven仓库,只不过Maven放的是jar包,而仓库放的是镜像文件。

1.3 小结

Image可以看作是容器的模板,Docker根据image镜像文件生成容器实例,同一个image镜像,可以生成多个同时运行的容器实例。

2.Docker 整体架构及底层通信原理

  1. 用户使用Docker Client 与Docker Daemon建立通信,并发送请求给后者;
  2. Docker Daemon作为Docker架构的主体部分,首先提供Docker Server的功能使其可以接受Docker Client的请求;
  3. Docker Engine 执行Docker内部的一系列工作,使每一项工作都是以一个Job的形式存在;
  4. Job运行过程中,当需要容器镜像时,就从Docker Registry中下载镜像,并通过镜像管理驱动Graph driver 将下载镜像以Graph的形式存储;
  5. 当需要为Docker创建网络环境时,通过网络管理驱动 Network driver 创建并配置Docker容器网络环境;
  6. 当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Exec driver来完成;
  7. Libcontainer是一项独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行的操作。
    在这里插入图片描述

3.Docker在Centos7上安装Docker

  1. 官网安装指南

    https://docs.docker.com/engine/install/centos/

  2. 检查CentOS的版本

    1. CentOS 7
    2. CentOS 8 (stream)
    3. CentOS 9 (stream)
    4. centos-extras库必须启用,默认情况下,此存储库是启用的,但是如果已禁用它,则需要重新启用它。
    
  3. 删除旧的版本

    1. 卸载Docker Engine

      sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
      

在这里插入图片描述

  1. 手动删除所有的image、container和文件

    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    

    在这里插入图片描述

  2. 安装基本的工具包

    yum install -y yum-utils
    

在这里插入图片描述

  1. 设置稳定的镜像仓库

     sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    我们最好加上国内的阿里云镜像仓库,否则有时候会拉取不下来,错误如下:
    在这里插入图片描述

  2. 安装Docker Engine

    1. 安装最新版本的docker

       sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      

在这里插入图片描述
在这里插入图片描述

  1. 启动docker

    sudo systemctl start docker
    

    在这里插入图片描述

  2. 验证docker

    sudo docker run hello-world
    

    在这里插入图片描述

就这么简单,我们就成功的安装了docker。

在这里插入图片描述

4.安装镜像加速器

由于网络原因,可能导致我们的下载速度比较慢,我们最好加入安装镜像加速器,加速下载镜像文件。这里我们以安装阿里云的镜像加速器为例来说明。

我们在阿里云产品上找到容器镜像服务—>镜像工具—>镜像加速器,可以看到里面的详细的配置和说明。

在这里插入图片描述

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xxxxxs.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

相关文章:

2.Docker基本架构简介与安装实战

1.认识Docker的基本架构 下面这张图是docker官网上的&#xff0c;介绍了整个Docker的基础架构&#xff0c;我们根据这张图来学习一下docker的涉及到的一些相关概念。 1.1 Docker的架构组成 Docker架构是由Client(客户端)、Docker Host(服务端)、Registry(远程仓库)组成。 …...

拓世法宝 | 数字经济崛起,美业如何抓住流量风口?

爱美之心&#xff0c;人皆有之。无论男女&#xff0c;都会很自然地对美好事物燃起兴致&#xff0c;跟高颜值相关的事物总能聚集注意力。例如直播平台里的美女网红收割流量赚得盆满钵满&#xff0c;面庞俊俏的年轻偶像吸引万千粉丝&#xff0c;还有“央视最美记者”王冰冰、“最…...

Scala 泛型编程

1. 泛型 Scala 支持类型参数化&#xff0c;使得我们能够编写泛型程序。 1.1 泛型类 Java 中使用 <> 符号来包含定义的类型参数&#xff0c;Scala 则使用 []。 class Pair[T, S](val first: T, val second: S) {override def toString: String first ":" sec…...

索引失效的场景有哪些?

虽然你这列上建了索引&#xff0c;查询条件也是索引列&#xff0c;但最终执行计划没有走它的索引。下面是引起这种问题的几个关键点。 列与列对比 某个表中&#xff0c;有两列&#xff08;id和c_id&#xff09;都建了单独索引&#xff0c;下面这种查询条件不会走索引 select…...

Java进阶04 final关键字、abstract抽象、interface接口、JDK8与JDK9中接口的区别、内部类和匿名类

文章目录 一、final关键字二、abstract关键字三、接口interface四、JDK8和JDK9中接口的区别五、内部类 一、final关键字 final可以修饰类、方法、变量 用final修饰类 表示此类不能被继承 用final修饰方法 表示方法不可以被重写 用final修饰变量 既可以修饰成员变量也可以修饰…...

Python的web自动化学习(五)Selenium的隐式等待(元素定位)

引言&#xff1a; WebDriver隐式等待是一种全局性的等待方式&#xff0c;它会在查找元素时设置一个固定的等待时间。当使用隐式等待时&#xff0c;WebDriver会在查找元素时等待一段时间&#xff0c;如果在等待时间内找到了元素&#xff0c;则立即执行下一步操作&#xff1b;如果…...

20231102从头开始配置cv180zb的编译环境(欢迎入坑,肯定还有很多问题等着你)

20231102从头开始配置cv180zb的编译环境&#xff08;欢迎入坑&#xff0c;肯定还有很多问题等着你&#xff09; 2023/11/2 11:31 &#xff08;欢迎入坑&#xff0c;本篇只是针对官方的文档整理的&#xff01;只装这些东西你肯定编译不过的&#xff0c;还有很多问题等着你呢&…...

CentOS 安装HTTP代理服务器 Squid

参考&#xff1a;大部分摘自此文&#xff0c;做了少部分修改 Squid 是一个功能全面的缓存代理服务器&#xff0c;它支持著名的网络协议像 HTTP&#xff0c;HTTPS&#xff0c;FTP 等等。将 Squid 放在网页服务器的前端&#xff0c;通过缓存重复请求&#xff0c;过滤网络流量等&…...

ubuntu下开发提效的小tips

一、常用操作使用简写的别名&#xff0c;写进bashrc文件中 背景&#xff1a;经常需要cd至某个文件夹中&#xff0c;然后再执行对应的操作&#xff1b;写进bashrc文件中后&#xff0c;可以直接用缩略命令替代这一连串的命令&#xff1b; 用到的工具&#xff1a; 设置命令别名a…...

Java反射详解:入门+使用+原理+应用场景

反射非常强大和有用&#xff0c;现在市面上绝大部分框架(spring、mybatis、rocketmq等等)中都有反射的影子&#xff0c;反射机制在框架设计中占有举足轻重的作用。 所以&#xff0c;在你Java进阶的道路上&#xff0c;你需要掌握好反射。 怎么才能学好反射&#xff0c;我们需要…...

PostgreSQL 工具的相关介绍

1.1 psql工具 psql是PostgreSQL中的一个命令行交互式客户端工具&#xff0c;类似 Oracle中的命令行工具sqlplus&#xff0c;它允许用户交互地键入SQL语句或命 令&#xff0c;然后将其发送给PostgreSQL服务器&#xff0c;再显示SQL语句或命令的结 果。 1.2 psql的简单使用 使用…...

结合组件库实现table组件树状数据的增删改

如图所示&#xff0c;可以实现树状数据的新增子项&#xff0c;新增平级&#xff0c;删除。主要用到了递归 代码&#xff1a; <template><el-table :data"tableData" style"width: 100%; margin-bottom: 20px" row-key"id" border def…...

Microsoft 365 管理自动化

Microsoft 365 服务被大多数组织广泛使用&#xff0c;每天生成的数据量巨大。解决 Microsoft 365 中的问题可能非常困难&#xff0c;并且使用多个管理中心来保护组织变得复杂。本机控制台还缺少某些批量管理任务、全面的审计报告和基于角色的精细访问控制。 Microsoft 360 管理…...

unraid 安装并设置 zerotier 内网穿透安装 unraid 局域网内其他设备

Read Original 最近看了以下两个文章&#xff0c;感谢发布的各种精彩文章&#xff0c;让我受益匪浅。OPENWRT 的固件在设置了&#xff0c;【自动允许客户端 NAT】后&#xff0c;可以直接访问局域网其他设备&#xff0c;而我 unraid 部署 zerotier 后&#xff0c;只能访问 unra…...

如何调试 Dubbo 协议调用过程

微服务架构下的快速交付、灵活部署等优势使得 Dubbo 协议已成为了当今互联网基础建设里的一大热点。 Dubbo 协议是一款由阿里巴巴开发并开源的一款高性能 Java RPC 框架&#xff0c;凭借着高效的远程调用、服务注册与发现、灵活的配置等特点&#xff0c;在微服务后端开发场景中…...

C++初阶 类和对象(上)

前言&#xff1a;C初阶系列&#xff0c;每一期博主都会使用简单朴素的语言将对应的知识分享给大家&#xff0c;争取让所有人都可以听懂&#xff0c;C初阶系列会持续更新&#xff0c;上学期间将不定时更新&#xff0c;但总会更的 目录 一、什么是面向对象编程 二、什么是类和如…...

SoftwareTest4 - 咋设计一个好的测试用例

咋设计一个好的测试用例 一 . 设计测试用例的万能公式功能测试性能测试界面测试兼容性测试易用性测试安全测试案例案例1 : 对水杯设计测试用例案例 2 : 对登录页面设计测试用例 二 . 具体设计测试用例的方法2.1 等价类等价类的概念等价类的用例编写 2.2 边界值2.3 判定表2.4 场…...

自定义 Spring Boot Starter 组件

自定义 Spring Boot Starter 组件是为了封装和简化特定功能的配置和集成&#xff0c;让用户能够更容易地集成你提供的库或功能。Spring Boot Starter 组件通常包括自动配置、依赖管理和必要的配置。 下面是创建一个简单的 Spring Boot Starter 的基本步骤&#xff1a; 步骤&a…...

功率放大器的种类和作用是什么

功率放大器是一种电子设备&#xff0c;用于将输入信号的功率增加到更高的水平&#xff0c;以驱动负载或输出设备。功率放大器广泛应用于各种领域&#xff0c;包括通信、音频、无线电频谱分析、激光器和雷达等。 根据应用需求和工作原理不同&#xff0c;功率放大器可分为几种不同…...

分析外贸SEO推广流程?网站谷歌SEO优化方法?

外贸SEO推广详细教程&#xff1f;外贸企业站如何做谷歌SEO推广&#xff1f; 外贸SEO推广是国际贸易领域中的一项重要战略&#xff0c;通过优化网站内容和结构&#xff0c;提高搜索引擎排名&#xff0c;从而增加在线可见性&#xff0c;吸引更多国际客户。顺风船将深入分析外贸S…...

前端工程化需要知道的一些知识

## 前端的概念 前端开发的产出是直接面向用户的 软技能&#xff1a;用户体验&#xff08;性能&#xff09; 编程技能&#xff1a; css: 综合实践能力、常见兼容hack html: 遵循w3c规范的语义化结…...

默认路由配置

默认路由&#xff1a; 在末节路由器上使用。&#xff08;末节路由器是前往其他网络只有一条路可以走的路由器&#xff09; 默认路由被称为最后的关卡&#xff0c;也就是静态路由不可用并且动态路由也不可用&#xff0c;最后就会选择默认路由。有时在末节路由器上写静态路由时…...

Annotorious入门教程:图片注释工具

本文简介 最近有工友问我前端怎么给图片做标注。使用 Fabric.js 或者 Konva.js 等库确实可以实现&#xff0c;但我又好奇有没有专门做图片标注的工具呢&#xff1f; 在网上搜了一下发现 Annotorious 可以实现这个功能。Annotorious 提供了图片注释和标注功能&#xff0c;而且…...

一台服务器是否能够安装多个SSL证书?

在今天的互联网世界中&#xff0c;网络安全是至关重要的&#xff0c;而SSL证书是为了保护网络通信安全而设计的加密协议。然而&#xff0c;对于一台服务器是否能够安装多个SSL证书这个问题&#xff0c;仍然存在一些疑问。本文将探讨这个问题&#xff0c;并提供一些相关的解析和…...

如何使用UDP打洞进行内网穿透

内网穿透是一种将局域网中的设备暴露到互联网上的技术&#xff0c;UDP打洞是内网穿透的一种方法。它允许您通过家庭网络中的NAT&#xff08;网络地址转换&#xff09;设备访问位于不同网络的设备&#xff0c;例如家庭服务器或物联网设备。本文将指导您如何使用UDP打洞实现内网穿…...

如何滴水不漏的学完C语言?

如何滴水不漏的学完C语言&#xff1f; 学习C语言需要掌握的知识点确实非常广泛。如果你觉得学校教学中所涉及的内容有所欠缺&#xff0c;可以有很多其他方式进行补充学习。最近很多小伙伴找我&#xff0c;说想要一些C语言资料&#xff0c;然后我根据自己从业十年经验&#xff…...

数据库深入浅出,数据库介绍,SQL介绍,DDL、DML、DQL、TCL介绍

一、基础知识&#xff1a; 1.数据库基础知识 数据(Data)&#xff1a;文本信息(字母、数字、符号等)、音频、视频、图片等&#xff1b; 数据库(DataBase)&#xff1a;存储数据的仓库&#xff0c;本质文件&#xff0c;以文件的形式将数据保存到电脑磁盘中 数据库管理系统(DBMS)&…...

拓世大模型 | 立足行业所需,发力终端,缔造智能无限可能

蒸汽机的发明为人类工业革命揭开序幕&#xff0c;引领了近现代产业变革。众所周知&#xff0c;而今AI技术的革命性突破&#xff0c;站在了时代舞台的中心&#xff0c;特别是大模型的崛起&#xff0c;无疑是第四次产业革命的焦点&#xff0c;它的地位可与当年的“蒸汽机”相提并…...

NEFU数字图像处理(3)图像分割

一、图像分割的基本概念 1.1专有名词 前景和背景 在图像分割中&#xff0c;我们通常需要将图像分为前景和背景两个部分。前景是指图像中我们感兴趣、要分割出来的部分&#xff0c;背景是指和前景不相关的部分。例如&#xff0c;对于一张人物照片&#xff0c;人物就是前景&…...

图论问题建模和floodfill算法

目录 引入&#xff1a;leetcode695.岛屿的最大面积 分析与转换 一维二维转换 四联通 完整代码解答&#xff1a; 1&#xff09;显示的创建图解决问题的代码 2&#xff09;不显示的创建图解决此问题的代码 floodfill算法 定义 引入&#xff1a;leetcode695.岛屿的最大面…...