【Docker】基本概念和底层技术

Docker

Alt

1 什么是 Docker

Docker 是一种容器技术。只要开发者将其应用和依赖包进行打包,放入到一个轻量级的、可移植的容器中,就能发布到任何流行的 linux 机器上。

Docker 的要素:

  • image 镜像:静态的
  • container 容器:动态的;镜像相当于类,容器相当于实例
  • dockerfile 自动化脚本:dockerfile 文件用于创建新的镜像

Docker 的特点:

  • 模拟完全相同的系统环境,解决软件跨环境迁移的问题
  • 完全使用沙箱机制,容器之间相互隔离
  • 容器性能开销极低,比虚拟机更加轻量

Docker 本身并不是容器,而是创建容器的工具,是应用容器引擎。除了 Docker,还有其它工具可以用于创建容器。

Docker 产品类型:

  • CE 社区版
  • EE 企业版

vscode 添加 docker 扩展。



2 Docker 的架构

在这里插入图片描述
Docker 采用的是 C/S 架构。

Docker 对象:

  • 镜像 images:是一个特殊的、分层的文件系统
    • 包含所需的程序、库、资源、配置文件、配置参数等
    • 不包含动态数据,其内容在构建后不再改变
  • 容器 containers:实质是进程
    • docker run 起来以后会添加一个读写层
    • 镜像和容器的关系就是类和实例的关系
  • 仓库 registry:用于保存所有创建好的镜像
    • 公用仓库 Public Registry 是 Docker Hub
    • 私有仓库 Private Registry

启动容器时,Docker daemon 会首先从本地获取相关镜像。当本地镜像不存在时,将从 Regitry 中下载该镜像并保存在本地。拉取镜像必须使用 HTTPS 协议。



3 Docker 的底层技术

3.1 namespace

Docker uses a technology called namespaces to provide the isolated workspace called the container. When you run a container, Docker creates a set of namespaces for that container.

These namespaces provide a layer of isolation. Each aspect of a container runs in a separate namespace and its access is limited to that namespace.

docker engine uses namespaces such as the following on Linux:

  • The pid namespace: Process isolation (PID: Process ID).
  • The net namespace: Managing network interfaces (NET: Networking).
  • The ipc namespace: Managing access to IPC resources (IPC: InterProcess Communication).
  • The mnt namespace: Managing filesystem mount points (MNT: Mount).
  • The uts namespace: Isolationg kernel and version identifiers (UTS: Unix Timesharing System).
  • 进程 PID:实现进程之间的隔离
  • 网络 NET:管理网络接口
  • 进程间通信 IPC:信号量、消息队列和共享内存
  • 挂载 MNT:管理文件系统的挂载点
  • Unix 分时系统 UTS:隔离内核和版本标识

3.2 Control groups

在这里插入图片描述

3.3 联合文件系统

在这里插入图片描述

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

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

相关文章

android studio 新建项目没有R文件

android studio 新建项目没有R文件,处理步骤 1,找一个能打开的项目替换根目录下的settings.gradle 2,改app 目录下的build.gradle文件 3,改gradle版本 4,改AndroidManifest.xml 5,改theme 改为,ok.

【Python】数据分析+数据挖掘——变量列的相关操作

前言 在Python和Pandas中,变量列操作指的是对DataFrame中的列进行操作,包括但不限于选择列、重命名列、添加新列、删除列、修改列数据等操作。这些操作可以帮助我们处理数据、分析数据和进行特征工程等。 变量列的相关操作 概述 下面将会列出一些基本…

Jmeter-使用http proxy代理录制脚本

Jmeter-使用http proxy代理录制脚本 第1步:打卡jmeter工具新增1个线程组 第2步:给线程组添加1个HTTP请求默认值 第3步:设置下HTTP请求默认值第4步:在工作台中新增1个----HTTP代理服务器 第5步:设置HTTP代理服务器…

2023华为OD统一考试(B卷)题库清单(持续收录中)以及考点说明

目录 专栏导读2023 B卷 “新加题”(100分值)2023Q2 100分2023Q2 200分2023Q1 100分2023Q1 200分2022Q4 100分2022Q4 200分牛客练习题 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷)》。 刷的越多&…

卷积神经网络识别人脸项目—使用百度飞桨ai计算

卷积神经网络识别人脸项目的详细过程 整个项目需要的准备文件: 下载链接: 链接:https://pan.baidu.com/s/1WEndfi14EhVh-8Vvt62I_w 提取码:7777 链接:https://pan.baidu.com/s/10weqx3r_zbS5gNEq-xGrzg 提取码&#x…

pnpm 与monorepo架构

软链接与硬链接 创建方式: mklink (windows) 软链接 : a、b指向同一个文件 b相当于一个快捷方式 硬链接: a、b指向同一个内存地址 某一文件修改,其他文件跟这变化 上图所示:安装某依赖&…

分布式光伏电站监控及集中运维管理-安科瑞黄安南

前言:今年以来,在政策利好推动下光伏、风力发电、电化学储能及抽水蓄能等新能源行业发展迅速,装机容量均大幅度增长,新能源发电已经成为新型电力系统重要的组成部分,同时这也导致新型电力系统比传统的电力系统更为复杂…

【C++】多态(举例+详解,超级详细)

本篇文章会对C中的多态进行详解。希望本篇文章会对你有所帮助。 文章目录 一、多态的定义及实现 1、1 多态的概念 1、2 多态的构成条件 1、2、1 虚函数 1、2、2 虚函数的重写 1、2、3 析构函数构成重写特例原因 1、3 多态的实例练习 1、3、1 例1 1、3、2 例2 1、3、3 例3 1、4…

linux安装conda

linux安装conda 卸载conda 在主目录下,使用普通权限安装: ./Anaconda3-2023.03-1-Linux-x86_64.shanaconda的目录是ENTER

python_day13

reduceByKey算子,聚合 列表中存放二元元组,元组中第一个为key,此算子按key聚合,传入计算逻辑 from pyspark import SparkConf, SparkContext import osos.environ["PYSPARK_PYTHON"] "D:/dev/python/python3.10…

【分布式】1、CAP 理论 | 一致性、可用性、分区容忍性

文章目录 一、CAP 理论1.1 Consistency 一致性1.2 Availbility 可用性1.3 Partition Tolerance 分区容忍性1.4 CAP 应用1.4.1 CP1.4.2 AP 二、CAP 实践2.1 ACID2.2 BASE 一、CAP 理论 是 2002 年证明的定理,原文,内容如下: In a distributed…

喜报|英码科技联合广师大荣获“智芯杯”AI芯片应用创新创业大赛两大奖项

7月15日,由中国仪器仪表学会主办的全国首届“智芯杯”AI芯片应用创新创业大赛总决赛暨颁奖典礼圆满结束,英码科技联合广东技术师范大学设计开发的“AI视觉,让工厂建设更智慧”和“基于AI的智慧校园无感考勤系统”创新项目均荣获三等奖。 ​ 自…

springcloudAlibaba之nacos集群部署和nginx负载均衡

1.环境准备 nacos server安装包:https://github.com/alibaba/nacos nginx安装包:https://nginx.org/en/download.html 2、nacos配置 将下载好的nacos-server的压缩包解压好以后,复制出N份(这里取决于你集群的数量)&…

设计模式之模板方法模式

例子:登陆(普通用户,工作人员) 没有使用设计模式实现用户登陆 package com.tao.YanMoDesignPattern.template.notPattern;/*** Author Mi_Tao* Date 2023/7/22* Description* Version 1.0**/ public class LoginModel {private …

Grafana中table的使用技巧

将多个指标数据显示在同一个Table中,需要用到Transform功能,利用Transform功能可以将数据进行处理只显示想要的数据:

【VTK】VTK 让小球动起来,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 文章目录 版本环境A.uiA.hA.cppRef. 本文主要目的是在 Qt 界面中,显示出来使用 VTK 构建的小球,并让小球能够动起来。同时为了方便对比…

探秘ArrayList源码:Java动态数组的背后实现

探秘ArrayList源码:Java动态数组的背后实现 一、成员变量二、构造器1、默认构造器2、带初始容量参数构造器3、指定collection元素参数构造器 三、add()方法扩容机制四、场景分析1、对于ensureExplicitCapacity()方法1.1 add 进第 1 个元素到 …

Inno Setup打包winform、wpf程序可判断VC++和.net环境

Inno Setup打包winform、wpf程序可判断VC和.net环境 1、下载Inno Setup2、新建打包文件、开始打包1、新建打包文件2、填写 应用名称、版本号、公司名称、公司官网3、选择安装路径 Custom是指定默认路径、Program Files folder是默认C盘根目录4、选择程序启动exe文件 以及Addfol…

【Python】基于Python和Qt的海康威视相机开发

文章目录 0 前期教程1 前言2 例程解析3 图像获取4 其他问题与解决办法5 使用到的python包 0 前期教程 【项目实践】海康威视工业相机SDK开发小白版入门教程(VS2015OpenCV4.5.1) 1 前言 此前写了一篇基于C开发海康威视相机的博客,貌似看的人…

springboot实现qq邮箱发送邮件或者验证码

首先我先去qq邮箱或者网易邮箱开通POP3/IMAP/SMTP/Exchange/CardDAV 服务 它在左上角的设置——账户——往下滑就可以找到——然后点击开通 开通后就会得到一串授权码。如下图 接下来直接编写代码 首先我没导入依赖 <!-- 这个是邮箱验证--> <dependency> <group…