Docker实战之一

news2024/9/28 23:33:10

一、前言

前两天看到一篇文章  再见了 Docker!K8S 已成气候!,K8S这么高端我们是还没有玩过的,Docker倒是实践过一把,这个系列会简单介绍一下实战的过程,具体背景是因为我们有时需要给门店提供一个相对稳定的培训环境,但他们又不需要长期使用,没有必要长期占用机器,需要的时候临时再购买机器就好,然后用Docker快速部署应用,这一篇我们先来了解一下Docker一些基本概念。

二、概念

1、Docker是什么

Docker是一个开源的容器引擎,用来管理软件部署应用,可以把开发的软件代码及软件所依赖的运行环境都打包成一个镜像,镜像有版本控制功能。

注:我们收银台系统要安装到一台新的机器上,先要安装依赖如下:JDK、Nginx、Redis、MySQL、然后部署2个前端2个服务端应用,每次部署都需要耗费比较长的时间,这样针对不变化依赖环境我们可以考虑构建成镜像。

2、Docker仓库

Docker仓库是存放Docker镜像的地方,有官方的公共仓库,你也可以搭建你自己私有仓库,Docker仓库和Maven仓库概念其实是差不多的。

  • 官方仓库

    https://hub.docker.com/, 如果你要提交镜像需要注册一个账号,然后就可以通过命令将你自己的镜像推到仓库。另外还可以通过官方仓库快速安装一些软件,比如gitlab,如果自己直接搭建git仓库需要安装很多依赖(redis、mysql等)然后各种配置,用docker就一条命令docker pull去拉取镜像,然后用docker run 运行起来就可以了。

  • 私有仓库

    可以用Docker官方镜像 registry搭建私有仓库。

3、Docker镜像

Docker镜像是一个Linux文件系统,它包含运行在Linux内核之上的程序及相应的数据,Docker镜像与宿主机共享Linux内核。一个镜像可以创建多个Docker容器。

Docker镜像两个特性

  • 镜像分层

先有一个base镜像,base镜像提供了最小化安装的Linux发行版本(比如centos、ubuntu等),然后Docker运行镜像启动容器,在容器内安装软件,然后可以保存为新的镜像。分层最主要目的能共享资源,比如多个镜像可以从同一个base镜像构建,这样在磁盘上只需要有一份base镜像,内存中也只需要加载一份base镜像,然后就可以为所有容器使用了。

  • 镜像只读

镜像生成后不可修改,添加一层构建新的镜像是通过创建一个容器,然后在容器上安装或删除软件从而构成新的镜像。

4、容器

容器是通过镜像创建的,它是独立于宿主机的隔离进程,可以被启动、开始、停止、删除,每个容器是相互隔离的,镜像与容器的关系就像面向对象中类和对象之间的关系,镜像就是类,容器就是对象。

三、Docker原理

容器在内核层面由主要由两个独立的机制来保证,一个是cgroups,另外一个是namespace。

  • cgroups

主要是对资源进行控制,可以限制、记录、隔离进程组所使用的物理资源(包括:CPU、memory、IO等),为容器实现虚拟化提一系列钩子。

  • namespaces

保证资源的隔离性,将资源放到不同的命名空间中,各个命名空间中的资源是相互隔离的。

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

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

相关文章

如何在IDEA中配置指定JDK版本?轻松解决!!!

有时候我们在导入项目,如果手动在IDEA中指定jdk版本,往往启动项目会报错误。 因此当我们新引入项目启动不了时可以检查一下自己IDEA中的jdk版本是否正确。 下面以配置jdk版本为11显示步骤: 1、配置 Project Structure 1.1、通过快捷键&qu…

阶乘与双阶乘的相关性质

阶乘与双阶乘的相关性质 双阶乘 基本性质 积分恒等式 极限近似 级数展开 阶乘 斯特林(Stirling)公式 gamma函数

信必优收到中国首批成立的期货公司之一表扬信

近日,信必优收到中国首批成立的期货公司之一的表扬信,客户极力表扬了我司员工卓越的职业操守,充满热情、勤奋努力;在工作中成长迅速,不仅对公司整体开发框架熟练掌握,对公司相关业务也理解深刻,…

进程控制(一):进程终止

文章目录 进程控制(一)进程终止运行正常退出码 运行异常进程正常/异常总结 进程控制(一) 在前文中,我们初步了解了进程的概念,以及通过fork函数来创建子进程,并对于为什么运行一个程序&#xf…

虹科分享 | 买车无忧?AR带来全新体验!

文章来源:虹科数字化与AR 阅读原文:https://mp.weixin.qq.com/s/XsUFCTsiI4bkEMBHcGUT7w 新能源汽车的蓬勃发展,推动着汽车行业加速进行数字化变革。据数据显示,全球新能源汽车销售额持续上升,预计到2025年&#xff0…

Banana Pi BPI-W3(ArmSoM-W3) RK3588编解码之MPP环境配置

1. 简介 瑞芯微提供的媒体处理软件平台(Media Process Platform,简称 MPP)是适用于瑞芯微芯片系列的 通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理,其目的是为了屏蔽不 同芯片的差异,为使用者…

提取存档提取操作没有完成出现意外错误,导致无法提取存档。错误Ox8007000E:内存资源不足,无法完成此操作。若要关闭此向导,请单击“完成“”。完成(F)

提取存档 提取操作没有完成 出现意外错误,导致无法提取存档。 错误Ox8007000E:内存资源不足,无法完成此操作。 若要关闭此向导,请单击"完成"”。完成(F) 取消 当我们解压一个普普通通的压缩包时&…

针对公网IP签发的IP地址SSL证书

传统的SSL证书是基于域名的,通常用于保护特定网站的通信。但随着技术的不断演进,一些情况需要更广泛的安全性,这就是IP地址SSL证书出现的原因。IP地址SSL证书是专门为公网IP地址签发的SSL证书,而不是针对特定域名。这意味着您可以…

CG Magic分享3dmax软件安装与打开文件转圈圈怎么办?

大家使用3dmax软件时,尤其,是初学者无论是安装3dmax软件还是打开max文件时,会遇到一类问题: 3dmax一直转圈不动? 3dmax总是转圈怎么办 大家遇到3dmax一直转圈圈是如何解决的呢?小编这里整理了一些3dmax软…

【科普知识】什么是模拟量控制?

模拟量控制是一种通过模拟量输入信号来控制伺服电机转矩或速度的方法。通过调整输入信号的大小,可以实现对电机转矩、速度或位置的精确控制。 在伺服运动控制中,大家可能经常听到“位置控制”,“速度控制”,“模拟量控制”等词。前…

电路综合-基于简化实频的SRFT微带线切比雪夫低通滤波器设计

电路综合-基于简化实频的SRFT微带线切比雪夫低通滤波器设计 0、基本理论 参考-Design of Ultra Wideband Power Transfer Networks的4.17小节的推导过程 n 次切比雪夫多项式定义为: n在1到5时的切比雪夫多项式表: 此表可以使用下面的代码计算得出&…

java通过jol-core库分析对象内存分布以及查看Synchronized锁升级过程

在Java开发中&#xff0c;我们可以借助jol-core这个库来查看对象内存信息。 引入依赖&#xff1a; <dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.17</version> </dependency>…

深度学习系列52:多目标跟踪

1. 评价指标 1&#xff09;FP&#xff1a;False Positive&#xff0c;即真实情况中没有&#xff0c;但跟踪算法误检出有目标存在。 2&#xff09;FN&#xff1a;False Negative&#xff0c;即真实情况中有&#xff0c;但跟踪算法漏检了。 3&#xff09;IDS&#xff1a;ID Sw…

【数据结构】数组和字符串(六):特殊矩阵的压缩存储:稀疏矩阵——压缩稀疏列(Compressed Sparse Column,CSC)

文章目录 4.2.1 矩阵的数组表示4.2.2 特殊矩阵的压缩存储a. 对角矩阵的压缩存储b~c. 三角、对称矩阵的压缩存储d. 稀疏矩阵的压缩存储——三元组表e. 压缩稀疏行&#xff08;Compressed Sparse Row&#xff0c;CSR&#xff09;矩阵f. 压缩稀疏列&#xff08;Compressed Sparse …

【计算机毕设小程序案例】基于微信小程序的图书馆座位预定系统

前言&#xff1a;我是IT源码社&#xff0c;从事计算机开发行业数年&#xff0c;专注Java领域&#xff0c;专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 &#x1f449;IT源码社-SpringBoot优质案例推荐&#x1f448; &#x1f449;IT源码社-小程序优质案例…

Android拖放startDragAndDrop拖拽onDrawShadow动态添加View,Kotlin(3)

Android拖放startDragAndDrop拖拽onDrawShadow动态添加View&#xff0c;Kotlin&#xff08;3&#xff09; import android.content.ClipData import android.graphics.Canvas import android.graphics.Point import android.os.Bundle import android.util.Log import android.…

【linux】麒麟v10安装Redis主从集群(ARM架构)

安装redis单示例的请看&#xff1a;麒麟v10安装Redis&#xff08;ARM架构&#xff09; 安装环境 ​Hostname​IP addressmaster192.168.0.1slave1192.168.0.2slave2192.168.0.3 下载安装包 &#xff08;三台都操作&#xff09; wget https://repo.huaweicloud.com/kunpeng/…

iStat Menus v6.72

iStat Menus是一款Mac电脑上的系统监控工具&#xff0c;它可以帮助用户监测电脑的硬件和软件状况&#xff0c;提供实时的系统数据和统计信息。 其主要特点包括&#xff1a; 1.系统监测&#xff1a;iStat Menus可以监测CPU、内存、硬盘、网络、电池等系统参数&#xff0c;方便…

SLAM从入门到精通(lidar的运动畸变矫正)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过&#xff0c;很多时候传感器的数据并不能直接拿过来使用。这里面除了噪声的原因之外&#xff0c;另外一部分原因就是传感器数据本身也…

Linux 多架构支持介绍和实践

Linux 多架构支持介绍和实践 1. Linux 上多架构支持指的是什么意思&#xff1f; 在Linux 上开启多架构支持&#xff08;multi-arch support&#xff09;&#xff0c;指的是可以让您在同一系统上安装多个不同架构的软件包&#xff0c;这在交叉编译的场景显得格外重要。 以下实…