Docker 应用容器引擎 (一)

Docker 应用容器引擎

Docker是什么

  • 是一个开源的应用容器引擎,基于GO语言开发并遵循了apache2.0协议开源

  • 是在linux容器里运行应用的开源工具

  • 是一种轻量级的“虚拟机”

  • Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器
    在这里插入图片描述


Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱
鲸鱼可看做宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。

Docker的设计宗旨:Build,ship and Run Any App,Anywhere,
即通过对应应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的"一次封装,到处运行"的目的。这里的组件,即可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

为什么容器化越来越受欢迎,应为容器的以下特点:

  • 灵活:即使是最复杂的应用也可以集装箱化

  • 轻量级:容器利用并共享主机内核

  • 可互换:可以即时部署更新和升级

  • 便携式:可以在本地构建、部署到云,并在任何地方运行

  • 可扩展:可以添加并自动分发容器副本

  • 可堆叠:可以垂直和即时堆叠服务

容器是在Linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。

虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多

在这里插入图片描述
Docker与虚拟机的区别:

特性Docker容器虚拟机
启动速度秒级分钟级
计算能力消耗几乎无消耗50%左右
性能接近原生弱于
系统支持量(单机)上千个几十个
隔离性资源隔离/限制完全隔离

容器在内核中支持2种重要技术:
docker容器本质就是宿主机的一个进程,docker容器是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是时间占用物理磁盘500g,只有当需要修改时才复制一份数据)。

Docker 三个核心概念

镜像:是创建容器的基础,也是一个只读的模版文件,里面包含容器中的应用程序所需要的所有内容(包含程序运行文件,配置文件,运行库文件,操作系统,依赖包)

容器:是用镜像运行的实例,容器可以被创建、启动、停止、删除、每个容器之间默认相互资源隔离(通过namespace隔离资源)

仓库:是用来保存镜像的地方、有公有仓库和私有仓库之分。

Docker的镜像、容器、日志等内容全部都默认存储在/var/lib/docker

Linux Namespace 的6大类型

项目Value
MNT Namespace提供磁盘挂载点和文件系统的隔离能力
IPC Namespace提供进程间通信的隔离能力
Net Namespace提供网络隔离能力
UTS Namespace提供主机名隔离能力
PID Namespace提供进程隔离能力
User Namespace提供用户隔离能力

安装 Docker

  • 目前Docker只能支持64位系统
systemctl stop firewalld.service
setenforce 0

#安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2 
--------------------------------------------------------------------------------------------
yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
--------------------------------------------------------------------------------------------

#设置阿里云镜像源

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

#安装 Docker-CE并设置为开机自动启动

yum install -y docker-ce docker-ce-cli containerd.io

systemctl start docker.service
systemctl enable docker.service 
--------------------------------------------------------------------------------------------
安装好的Docker系统有两个程序,Docker服务端和Docker客户端。其中Docker服务端是一个服务进程,负责管理所有容器。
Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。大部分情况下Docker服务端和
客户端运行在一台机器上。
--------------------------------------------------------------------------------------------
#查看是否安装成功
docker version

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

23款奔驰S400豪华型升级4D旋转高音,提升车内氛围

奔驰加装4D旋转高音,让高音“有型有色”,高端4D环绕立体声音响系统的视觉效果同样令人印象深刻:系统启动时,安装在前车门后视镜三角板中的两个高音头会与同色车内氛围灯一块亮起,同时向外旋出10mm至最佳效果位置,以提高…

阿里云声音复刻

阿里云声音复刻 个性化人声定制 阿里云个性化人声定制是智能语音交互产品自学习平台下的一部分 使用方式:https://help.aliyun.com/document_detail/456006.html 方式一:控制台界面定制使用方式 方式二:通过OpenAPI定制:在该页…

matplotlib从起点出发(1)_Tutorial_1

0 系列简介 这个系列,小白从起点出发开始整理matplotlib库的基本使用及相关技巧。小白的主要思路是沿着官网的tutorials先学习matplotlib的基础功能,然后针对官网总结的Cheat Sheets及其中的知识点查漏补缺。作为一个工具库,小白认为只要能够…

NodeJS实现支付宝沙箱支付②③

文章目录 前言版权声明Alipay SDK 沙箱环境简介Node环境要求沙箱环境配置下载所需模块准备前端静态页面以及Node服务器文件夹规范AlipaySdk 配置准备AlipaySdk 代码演示 Alipay实例化 ~ alipay.sdk 文件 AlipayForm ~ alipayForm文件 AlipayFormStatus ~ alipayForm文件 …

长城汽车Hi4技术品牌成果初现,大象转身必将势不可挡

今年1-6月,长城汽车销售52万辆,新能源车型销售9.3万辆,同比增长47%;智能新能源新产品密集上市,新能源销量与占比逐月攀升,6月销售超2.6万辆,占比突破25%,皆创历史新高; 全…

智慧数据驱动:基于smardaten构建多维数据可视化大屏

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【uni-app】常用图标、头像汇总

在做小程序的时候,有时候需要各种图标和头像素材,而百度一堆基本都是收费的。所以,整理一些免费好用的图标,头像库: 1、iconfont-阿里巴巴矢量图标库 基本上常用的矢量图标,在这儿都有,而且可…

【极简 亲测】已拦截跨源请求:同源策略禁止读取位于....的远程资源。(原因:CORS 头缺少 ‘Access-Control-Allow-Origin‘)

CORS是Cross-Origin Resource Sharing。 解决 首先这个是浏览器层面的拦截。下面的方法都是解除浏览器拦截的方式。 解除了之后还是有可能其他方面有问题的,但是那个会提示其他错误。 比如CORs Failed之类的,这个是没收到response,大概率是…

【go】xorm分类统计及多表联查

文章目录 1 分类统计2 多表联查 1 分类统计 1 sql SELECT grade_protection_level AS type, count(grade_protection_level) AS count FROM vital_7jvebmrryff3_asset WHERE (field_group 应用信息)AND (asset_life_cycle 正式)AND (status 1) GROUP BY grade_protection…

微服务系列文章 之SpringBoot之定时任务详解

序言 使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一、基于注解(Scheduled)二、基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定时间来动态…

实现 Rollup 插件alias 并使用vitest提高开发效率

本篇文章是对 实现 Rollup 插件 alias | 使用 TypeScript 实现库的基本流程 | 使用单元测试提高开发效率 的总结。其中涉及到开发一个组件库的诸多知识点。 实现一个经常用的 rollup 插件 alias 首先执行npm init命令初始化一个package.json文件,因为插件使用了ty…

【ARM Cortex-M 系列 1 -- Cortex-M0, M3, M4, M7, M33 差异】

文章目录 Cortex-M 系列介绍Cortex-M0/M0 介绍Cortex-M3/M4 介绍Cortex-M7 介绍Cotex-M33 介绍 下篇文章:ARM Cortex-M 系列 2 – CPU 之 Cortex-M7 介绍 Cortex-M 系列介绍 Cortex-M0/M0 介绍 Cortex-M0 是 ARM 公司推出的一款微控制器(MCU&#xff0…

AIGC之文本内容生成概述(下)——Transformer

在上一篇文章中,我们一口气介绍了LSTM、Word2Vec、GloVe、ELMo等四种模型的技术发展,以及每种模型的优缺点与应用场景,全文超过一万字,显得冗长且繁杂,在下文部分我们将分开介绍Transformer、BERT、GPT1/GPT2/GPT3/Cha…

职责链模式:如何实现可灵活扩展算法的敏感信息过滤框架?

今天,我们主要讲解职责链模式的原理和实现。除此之外,我还会利用职责链模式,带你实现一个可以灵活扩展算法的敏感词过滤框架。下一节课,我们会更加贴近实战,通过剖析Servlet Filter、Spring Interceptor来看&#xff0…

K12351 生日日期

题解目录 K12351 生日日期题目描述输入格式输出格式解题思路解题思路2(未编写)示例代码 其他题解:思维拓展题目描述正确答案 K12351 生日日期 题目描述 小科的生日是YY年MM月DD日,他想知道自己出生第10000天纪念的日期&#xff…

如何在PADS Logic中查找器件

PADS Logic提供类似于Windows的查找功能,可以进行器件的查找。 (1)在Logic设计界面中,将菜单显示中的“选择工具栏”进行打开,如图1所示,会弹出对应的“选择工具栏”的分栏菜单选项,如图2所示。…

一文带你了解Spring中存入Bean和获取Bean的方式

0. Spring中的五大注解 上图中就是五大类注解对应的层,通过源码可以看到其他四个注解都基于Conponent 1. 存入 Bean Spring既然是一个包含众多工具方法的IoC容器,它是一个控制反转的容器,所以就需要将Bean对象存入到容器中,需要…

Vue中值的传递(父传子,子传父,子父同步)

1.父组件->子组件传递数据 ①父组件通过 v-bind: 属性绑定的形式,把数据传递给子组件 如果不需要动态绑定,则可以直接写number“张三” ②子组件中,通过props接收父组件传递过来的数据 2.子组件->父组件传递数据 1.在子组件中&#xf…

举例说明基于线性回归的单层神经网络网络(以梯度下降算法来求解权重的过程)...

我们将通过一个简单的例子来说明基于线性回归的单层神经网络,以及如何使用梯度下降算法来求解权重。 假设我们有以下数据集,表示学生的学习时间(小时)与他们的考试分数: 学习时间(X)&#xff1a…

使用NVIDIA FX Composer验证多纹理合成效果

最近项目上有一个需求,需要将4张带透明通道纹理合成为一张,并且每张纹理指定一个全局透明度。由于纹理过多,合成效果无法保证,为了减少项目的风险,领导希望我先快速验证一下我们讨论的方法是否能完成项目的要求。因此我…