Docker基础篇之入门使用

文章目录

    • 1. Docker的基本组成
    • 2. Docker平台架构
    • 3. 阿里云镜像加速
    • 4. Docker的Hello World入门案例
    • 5. 总结

1. Docker的基本组成

Docker的基本组成主要是有四部分,分别是镜像、容器和仓库。

  • 镜像:Docker镜像就是一个只读的模版,镜像可以用来创建Docker容器,一个镜像可以创建很多容器。它也相当于是一个root文件系统,比如官方镜像centos7就包含了完整的一套centos7的最小系统的root文件系统。镜像又相当于容器的源代码,docker镜像文件类似于java的类模版,而docker容器类似于java中new出来的实例对象。
  • 容器: Docker利用容器独立运行一个或一组应用,应用程序或服务运行在容器中,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例,就像是java中的类和实例对象的关系一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境。另一方面,容器可以看成一个简单的Linux环境和运行在其中的应用程序。
  • 仓库:仓库时集中存放镜像文件的场所。仓库可以分为私有仓库和公开仓库两种形式。Docker Hub就是最大的公有仓库。

在这里插入图片描述
基于前面介绍的docker的三大要素,docker的工作流程可以描述于下:

Docker是一个CS结构的系统,Docker守护进程工作在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器,容器是一个运行时环境,就是我们前面说的集装箱。
在这里插入图片描述

2. Docker平台架构

前面说到,Docker是一个C/S模式的架构,后端是一个松耦合架构,众多模块各司其职。Docker的运行流程如下所示:

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

在这里插入图片描述

3. 阿里云镜像加速

从阿里云上找到镜像加速地址,如下图所示:
在这里插入图片描述
由于我的机器是m1,所以我这里就演示m1如何配置加速镜像。我的mac上的docker客户端是Docker for Mac。下面演示如何配置镜像:

  1. 首先找到设置中的Docker Engine

在这里插入图片描述

  1. 然后将镜像加速地址配置到registry-mirrors数组中,然后重启就配置完成了

在这里插入图片描述

4. Docker的Hello World入门案例

执行下面命令运行入门程序:

docker run hello-world

运行结果如下所示:
在这里插入图片描述
它的运行原理如下所示:
在这里插入图片描述

5. 总结

再次分析一下前面的核心问题:Docker为什么比传统的虚拟机快?

  • docker有着比虚拟机更少的抽象层

由于Docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的是实际物理机的硬件资源,因此在CPU、内存利用率上docker将会在效率上有明显的优势。

  • docker利用的是宿主机的内核,而不需要加载操作系统OS内核

当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引用寻址、加载操作系统内核返回等比较费费资源的过程,当新建立一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的,而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建立一个docker只需要几秒钟的时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/842156.shtml

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

相关文章

【Spring】深入理解 Spring 状态机:简化复杂业务逻辑的利器

前言 在软件开发中,有许多场景需要处理状态转换和状态驱动的逻辑,比如订单处理、工作流程管理、游戏引擎等。Spring 状态机(Spring State Machine)是 Spring Framework 提供的一个强大的模块,用于帮助开发人员轻松构建…

二叉搜索树BST ——(C++)

本篇将会讲解有关二叉树的搜索原理,以及关于二叉搜索树的建立,以及二叉树搜索树的插入、删除和查找等基本操作。最后我们还会对二叉搜索树进行功能扩展,介绍有关搜索二叉树的 K 模型和 KV 模型。目录如下: 目录 1. 搜索二叉树 二叉…

前端学习CSS-2

盒子模型 盒子模型相关属性 一些盒子模型的样式示例 传统网页布局方式 浮动 浮动的三大特性 脱标:脱离标准流一行显示,顶部对齐具备行内块元素特性 定位

Java整合EasyExcel实战——1

参考&#xff1a;读Excel | Easy Excel快速使用easyexcel的来完成excel的读取https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read 准备条件 依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifa…

Android 动效整理

Android自定义SeekBar&#xff0c;滑动时弹出气泡指示器显示进度 安卓开发中非常炫的效果集合_android 开发 向右上角收起炫酷动态效果-CSDN博客 https://github.com/shenghuntianlang/Android-Views?tabreadme-ov-file#decentbanner 以前收藏了很多文章&#xff0c;但是过…

【UE5.1 角色练习】08-传送技能

前言 在上一篇&#xff08;【UE5.1 角色练习】07-AOE技能&#xff09;基础上继续实现人物通过鼠标点击然后传送技能的功能。 效果 步骤 1. 首先需要显示鼠标光标&#xff0c;我们可以在玩家控制器中勾选“显示鼠标光标” 2. 在项目设置中添加一个操作映射&#xff0c;设置按…

Python爬虫入门实例:Python7个爬虫小案例(附源码)

引言 随着互联网的快速发展&#xff0c;数据成为了新时代的石油。Python作为一种高效、易学的编程语言&#xff0c;在数据采集领域有着广泛的应用。本文将详细讲解Python爬虫的原理、常用库以及实战案例&#xff0c;帮助读者掌握爬虫技能。 一、爬虫原理 爬虫&#xff0c;又…

2024年上半年信息系统项目管理师下午真题及答案(第二批)

试题一 某项目计划工期为10个月&#xff0c;预算210万元&#xff0c;第7个月结束时&#xff0c;项目经理进行了绩效评估&#xff0c;发现实际完成了总计划进度的70%。项目的实际数据如表所示&#xff1a; 单击下面头像图片领取更多软考独家资料

企业内部通讯软件—WorkPlus适配信创即时通讯软件

在现代企业中&#xff0c;良好的内部通讯是保持高效工作和顺利运营的关键。企业内部通讯软件的选择对于提升沟通效率、促进团队合作、保障数据安全和隐私保护至关重要。本文将介绍企业内部通讯软件的重要性探讨一些常用的软件&#xff0c;帮助企业做出明智的选择。 一、企业内…

深度融合大语言模型与知识图谱:思通数科企业知识库智能问答系统的创新实践

摘要 在知识经济时代&#xff0c;企业知识管理的重要性日益凸显。本文深入探讨了思通数科如何利用大语言模型和知识图谱技术&#xff0c;构建企业知识库智能问答系统&#xff0c;以促进知识的高效获取、共享、应用和创新&#xff0c;从而提升企业的知识管理水平和业务价值。 1…

钕铁硼表面磷化处理

大家都知道烧结钕铁硼易氧化、易腐蚀&#xff0c;日久将造成磁性能的衰减甚至丧失&#xff0c;所以使用前必须进行严格的防腐处理。在之前的文章中已经向大家介绍过与烧结钕铁硼表面处理相关的知识和电镀的工艺流程&#xff0c;除了电镀之外&#xff0c;钕铁硼表面处理还可采用…

Reids高频面试题汇总总结

一、Redis基础 Redis是什么? Redis是一个开源的内存数据存储系统,它可以用作数据库、缓存和消息中间件。Redis支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等,并提供了丰富的操作命令来操作这些数据结构。Redis的主要特点是什么? 高性能:Redis将数据存储在内…

大数据开发面试题【ClickHouse篇】

170、clickhouse介绍以及架构 clickhouse一个分布式列式存储数据库&#xff0c;主要用于在线分析查询 171、列式存储和行式存储有什么区别&#xff1f; 行式存储&#xff1a; 1、数据是按行存储的 2、没有建立索引的查询消耗很大的IO 3、建立索引和视图花费一定的物理空间和…

rapidssl通配符证书低至600元一年

RapidSSL是Geotrust旗下的子品牌&#xff0c;主要经营的是入门级的SSL数字证书。RapidSSL旗下的SSL证书产品不多&#xff0c;只有DV基础型单域名SSL证书和通配符SSL证书&#xff0c;不过这两款SSL证书满足了大多数网站的需求。今天就随SSL盾小编了解RapidSSL旗下的通配符SSL证书…

MybatisPlus中自定义sql

背景 在开发过程中&#xff0c;可能会出现除了where条件&#xff0c;其它sql比较复杂&#xff0c;这时候就需要用到自定义sql了。 问题 如&#xff1a;用户状态为正常的数据年龄加一&#xff08;所有用户年龄加一&#xff09; 数据库中sql&#xff1a; UPDATE USER SET…

协变(List泛型作为方法参数时的父类子类问题)

有段时间没搞.net的项目了&#xff08;没办法&#xff0c;谁让国内JAVA流行是事实&#xff09;。最近又回归.net&#xff08;哪里需要哪里搬~&#xff09;。 接收到需求后&#xff0c;一顿输出&#xff0c;结果…咦?编译失败??? 错误信息&#xff1a; CS1503:参数1:无法…

Docker 常用命令大全!!

Docker 常用命令 一、启动类1. 启动 docker2. 关闭 docker3. 重新启动 docker4. docker 设置自启动5. 查看 docker 运行状态6. 查看 docker 版本号等信息7. docker 帮助 二、 镜像类1. 查看镜像2. 搜索镜像3. 拉取镜像4. 运行镜像5. 删除镜像6. 加载镜像7. 保存镜像 三、容器类…

python-opencv 边缘检测、直线检测、圆检测

文章目录 Canny算法霍夫变换-直线检测霍夫变换-圆形检测 Canny算法 除了将目标与背景分离开来&#xff0c;边缘检测也同样是一种图像分割方法&#xff0c;从分割结果来看&#xff0c;adaptiveThreshold函数显然就采取了类似边缘检测的划分方案。 Canny在1986年提出了一种边缘…