Docker 基础概念介绍

news2024/12/23 7:56:55

一 什么是 docker ?

        Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(百度百科介绍)

二 为什么要用docker ?

1.在软件开发中,最麻烦的事情之一就是环境配置。在正常情况下,如果要保证程序能运行,我们需要设置好操作系统,以及各种库和组件的安装。
2.举例来说,要运行一个java程序,计算机必须要安装JDK、maven、Tomcat、mysql等等软件和环境变量。如果服务器需要水平拓展很多台,那么光是每台服务器配置这些环境,就能直接让人崩溃。
docker的出现,就是解决了上面的痛点。

三 docker 主要用途

  1. 提供一次性的环境:本地测试别人的软件、持续集成的时候提供单元测试和构建的环境。
  2. 提供弹性的云服务:因为Docker容器可以随时启动或关闭,所以非常适合动态规划和缩容。
  3. 组建微服务构架:通过多个容器,服务的部署能更加灵活,帮助实现微服务构架。

四 docker 三大组成要素

镜像:Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。镜像可以用来创建Docker容器,用户可以使用设备上已有的镜像来安装多个相同的Docker容器。
容器:镜像创建的运行实例,Docker利用容器来运行应用。每个容器都是相互隔离的、保证安全的平台。我们可以把容器看做是一个轻量级的Linux运行环境。
镜像仓库:集中存放镜像文件的地方。用户创建完镜像后,可以将其上传到公共仓库或者私有仓库,需要在另一台主机上使用该镜像时,只需要从仓库上下载即可。

五 docker运行流程

5.1 Docker客户端

        用于和Docker守护进程(Docker Daemon)建立通信的客户端。Docker客户端只需要向Docker服务器或者守护进程发出请求(Docker构建、Docker拉取和Docker启动等指令),服务器或者守护进程将完成所有工作并返回结果。
如橙色流程所示,执行Docker构建指令会根据Docker文件构建一个镜像存放于本地Docker主机。
如蓝色流程所示,执行Docker拉取指令会从云端镜像仓库拉取镜像至本地Docker主机或将本地镜像推送至远端镜像仓库。
如黑色流程所示,执行Docker启动指令会将镜像安装至容器并启动容器。
5.2 Docker主机

        一个物理或者虚拟的机器用于执行 Docker守护进程和容器。
5.3 Docker守护进程

        接收并处理Docker客户端发送的请求,监测Docker API的请求和管理Docker对象,比如镜像、容器、网络和数据卷。

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

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

相关文章

【nowcoder】笔试强训Day13

目录 一、选择题 二、编程题 2.1参数解析 2.2跳石板 一、选择题 1.一个关系数据库文件中的各条记录 () 。 A. 前后顺序不能任意颠倒,一定要按照输入的顺序排列 B. 前后顺序可以任意颠倒,不影响库中的数据关系 C. 前后顺序…

前端面试题之计算机网络篇--HTTP协议

HTTP协议 1. GET和POST的请求的区别 GET和POST方法 GET和POST方法都是HTTP中的方法 什么是 HTTP? 超文本传输协议(Hypertext Transfer Protocol,缩写 HTTP)旨在启用客户端和服务器之间的通信。 HTTP 充当客户端和服务器之间的…

Android进阶——Javac编译解析

Javac编译器 1.Javac的源码与调试 Javac的源码下载地址:Javac的源码下载地址,在Myeclipse中新建项目Compiler_javac,把源码复制到项目中。 Javac的源码目录: 从Sun Javac的代码来看,编译过程大致可以分为3个过程&…

测试工程师正遭「革命」 AI将改写测试模式

文章目录❤️‍🔥 软件测试的现状❣️ 功能测试的短板❣️ 过于的依赖工具❤️‍🔥 测试行业的两极分化❤️‍🔥 纯功能测试人员应该如何破局❣️ 龙测 AI TestOps 云平台❣️ AI TestOps 亮相 TICA❣️ AI TestOps 所实现的混合模型解决方案…

相关系数(皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数)

目录 总体皮尔逊Person相关系数: 样本皮尔逊Person相关系数: 两点总结: 假设检验:(可结合概率论课本假设检验部分) 皮尔逊相关系数假设检验: 更好的方法:p值判断方法 皮尔逊相…

lua调用c动态库实例

简介 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 特点 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K&a…

STM32/51单片机实训day4——RFID数据读取|RC522|串口数据收发、可模拟RFID (三) 仿真

目录 1 任务指导 2 实验步骤 3 串口调试 4 USART配置 5 fputs函数重写 内 容:能够读取RFID卡S50的ID——编程实现串口数据收发 学 时:3学时 知识点:电路图设计、USART配置 重点: USART配置 难点:USART配置 时…

赶快升级吧!PHP8比PHP5快41倍,比PHP7快3倍

本文得出的结论,归结于仅运行纯CPU任务的脚本的基准测试结果,不需要I/O操作的任务,例如访问文件、网络或数据库连接。 这些是纯 CPU 基准测试。它们并未涵盖 PHP 性能的所有方面,并且它们可能无法代表实际情况。然而,结…

用Python标准库统计CSDN阅读量

urllib基础 一般做爬虫其实很少有推荐urllib的,但urllib乃是Python标准库成员,在要求比较简单的情况下,采用urllib还是比较方便的。 作为爬虫入门必学包,urllib最常用的函数一定是urllib.request中的urlopen。其返回对象是HTTPR…

ES学习路程(二)

关于ES第一篇是在Linux安装,为了方便我在windows搭建一套ES和kibana版本(7.15.0) 第一步:下载安装ES在windows 官网下载相应版本的es和kibana: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7…

《图解TCP/IP》阅读笔记(第八章 8.6、8.7)—— 网络管理与其他应用层协议

前言 本篇是第八章的最后一篇 8.6 网络管理 从前,网络管理凭借管理员的记忆和直觉进行,但是网络规模越大,人的力量就越不足,所以需要一个严密的管理工具或方法。 在TCP/IP的网络管理中,可以使用SNMP(Si…

uni-app——小程序实现本地图片的上传以及身份证的智能识别

文章目录 前言一、示例图二、实现过程 1.完成提交图片的api地址2.获取本地图片3.将本地图片上传至开发者服务器三、具体实现代码四、身份证的智能识别总结前言 上传本地图片的功能很常见,那么具体该如何实现呢? 一、示例图 二、实现过程 1.完成提交图…

操作系统接口系统调用的实现

接口 连接两个东西,信号转换,屏蔽细节… 操作系统接口 连接上层用户和操作系统软件,方便了使用,屏蔽了细节。 操作系统接口的形式 为应用层提供一些重要的函数,如printf,write,read等。接口…

Windows Active Directory —— 常见的远程控制对比

在windows环境中,需要远程访问的时候很多,使用的工具和命令也各式各样,我把自己常用的命令和工具总结一下 远程访问方式: 1)对服务器而言,RDP这个绝对是最常见的方式,mstsc /v:remoteserver 即可打开 2)winrs和winrm,这个可以允许我们通过命令行来远程访问,远程服务…

TypeScript基础类型

目录 数字 number 字符串 string 布尔 boolean 数组 Array 元组 枚举 enum 任意值 any void Null 和 Undefined null undefined Never 数字 number let age: number 24; 虽然爆红,但是依然能改 字符串 string let name:string"张三" 布尔 bo…

ef参数设置说明(faiss)

1、模型参数:1000代表聚类中心个数 随着聚类个数的增加,模型索引的构建时间近似指数增加但搜索精度也线性增加,不影响内存占用,几乎不影响搜索耗时 结论:在 Faiss 引擎的聚类情况下,对于百万级别的数据大概…

B/S结构和C/S结构详细介绍

什么是c/s结构、b/s结构 1、C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,充分利用两端硬件环境的优势。早期的软件系统…

Haploview做单倍型教程1--软件安装

大家好,我是邓飞,这里介绍一下如何使用Haploview进行单倍型的分析。 计划分为三篇文章: 第一篇:Haploview做单倍型教程1–软件安装第二篇:Haploview做单倍型教程2-分析教程第三篇:Haploview做单倍型教程3…

HCIA(1)

一. 计算机网络的诞生及发展 1946年2.14日,美国宾夕法尼亚大学为了美国军方用于导弹计算,发明了世界上第一台计算机,而计算机改变并且引领了世界的发展。 计算机是现代一种用于高速计算的电子计算机器,可以进行数值计算&#x…

『C语言』字符串的输入gets()和输出puts()

🚩write in front🚩 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5&#xff5…