首页 > 其他分享 >Docker介绍

Docker介绍

时间:2024-03-29 23:13:54浏览次数:26  
标签:操作系统 介绍 构建 内核 Docker docker 运行

这篇文章并不是一个大众化的docker介绍,是本人在学习docker中遇到的问题和存在的疑惑在得到解答后所总结出来的内容。

Docker是什么?

Docker首先他是一个软件平台,让您可以快速构建、测试和部署应用程序。顾名思义他是一个项目构建部署的工具。但他和一些Maven之类的构建工具有所不同。他并不是将你的代码构建起来,而是将你的代码封装起来,实现一次构建任何地方都可以实现。

我们知道要运行一段代码或者说一个项目需要配置各种各样的环境变量以及配置等。就算是运行一个简单的“Hello World”代码,你用python需要配置python的环境变量,用java写也需要下载java的jvm才能运行。在一些复杂项目里我们要运行各个服务,例如一般来说我们需要运行许多数据库(mysql等)、中间件(redis、nginx、kafka等)或者apache服务器等。 这些服务的配置和开启都需要和系统里的各种环境配置等深度绑定。所以我们一个系统里通常只能运行一个项目。

这还不是最糟糕的,最糟糕的是我们代码编写过程中要遇到开发环境、测试环境和线上环境等。这些不同的环境其实就是代码在不同的地方运行,也许你作为开发人员在本地电脑上配置好的环境和代码是没有问题的,但是在其他地方部署时却出现了各种问题。虽然现在的很多技术都在提供的自动化构建,如maven等技术就可以通过一个文件来控制你的环境版本等。这样方便你在其他电脑上重新构建该项目。

但是还是没有解决另一个问题,那就是在一个电脑上只能运行一个项目,这样一来docker就应运而生。

Docker介绍

Docker是一个平台,他通过在原先操作系统内核的基础上通过某些方法实现了多个环境共存,这里使用的技术是Linux内核的一些技术包括Linux 内核的命名空间(Namespace)、Linux 内核的控制组(CGroup)、Union 文件系统、Linux 容器(LXC)。这些技术是是什么不重要,原理可以后面再去学。现在可以知道的是Docker通过这几个技术在原先操作系统上面构建了多个虚拟环境,这样实现了多个项目共存。这里多个虚拟环境其实就是指各个环境的链接和配置等。通过docker这个平台来给你自动切换和屏蔽了。

Docker运行起来只是系统中的一个进程,该进程通过上述的几个技术在原linux内核之上构建虚拟环境,他和VM这些虚拟化技术不同的是,他并不是在上面重新创建了一个虚拟系统,而是在原先系统的基础上划分了不同区域,这样一来的好处是占用资源少而且可以动态划分资源。

Docker内容

通常Docker核心技术其实就是镜像、容器和数据卷等。这些内容在其他博客中都详细介绍了,这里就不过多介绍。 这里更多介绍的是对于Docker的理解和应用。

Docker还会有不同容器间通信以及如何多个服务打包到一个容器里等各种操作。

Docker应用

有了docker我就可以在写好一个项目后,将他打包成一个镜像,然后在任何可以安装docker的操作系统中运行。他会借用原操作系统的内核来实现虚拟的环境。这里值得一提的是如果我写的项目是运行在linux系统中,但是我现在需要把他运行在windows操作系统上是不是就不能实现了。因为之前说的是他需要借助原操作系统的功能。

其实是可以实现的,这里windows和Macos采取的措施是要求系统启用了 Hyper-V 虚拟化功能,该功能允许在 Windows 系统上创建和管理虚拟机(VMs)。Hyper-V 虚拟化功能提供了一个完整的虚拟化解决方案,包括虚拟处理器、内存、存储和网络等组件。

这样一来其实就是wondows虚拟了一个linux操作系统,然后在该操作系统上使用docker,docker在该linux系统上划分不同的虚拟环境。


docker的介绍就到这里,以上就是我对docker的一些简单理解。

标签:操作系统,介绍,构建,内核,Docker,docker,运行
From: https://www.cnblogs.com/grfade/p/18104751

相关文章

  • 客快物流大数据项目(六十八):工作流调度 azkaban介绍及用法 一般有用 图片偏多 看1
    工作流调度一、工作流产生背景工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流解决的主要问题是:为了实现某个业务目标,利用计算机软件在多个参与者之间按某种预定规则自动传递文档、信息......
  • 大模型检索增强生成RAG原理介绍
    大家好,我是程序锅。github上的代码封装程度高,不利于小白学习入门。常规的大模型RAG框架有langchain等,但是langchain等框架源码理解困难,debug源码上手难度大。因此,我写了一个人人都能看懂、人人都能修改的大模型RAG框架代码。整体项目结构如下图所示:本篇文章将介绍2.RA......
  • 简单介绍c语言程序的编译与链接
    程序运行的背后程序在运行时经历了四个步骤,分别是预编译(Prepressing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。预编译预编译也称预处理,源代码文件(.c)和相关的头文件(.h)等被预编译器cpp预编译成一个.i文件。编译编译过程就是将预处理后的文件进行一系列......
  • CentOS7 下 Docker方式部署 nextcloud步骤
    本示范站点在操作系统Centos7环境下;根目录设在:/app/dapp/caihcloud/nextcloud/html,根据实际情况自行调整;假设你已经安装启动好mysql80。现在开始,步骤如下:1、执行安装命令yuminstalldocker-ysystemctlstartdocker//启动dockersystemctlenabledocker//设置开机启动......
  • LangChain SQL介绍以及使用Qwen1.5执行SQL查询教程
    该模块可以让我们向LLM提问时从数据库中查询数据并做出回答。架构SQLchain和agent的高层抽象架构:问题转查询SQL:使用LLM将用户输入转成SQL查询执行SQL查询:执行SQL语句回答问题:LLM根据数据库查询结果返回回答内容环境安装安装必要环境和包pipinstall--upgrade--quiet......
  • Docker技术全景:推动云原生架构的关键力量
    一、引言Docker,作为当今云计算领域的一颗璀璨明星,已经深刻改变了我们对软件开发、部署和运维的认识。从简单的容器化概念出发,Docker不仅仅是一种技术实现,它更是一种服务于云原生时代的哲学和实践。Docker的普及和成功,部分归功于它所提供的轻量级、可移植、自给自足的容器......
  • 客快物流大数据项目(七十):Impala入门介绍 一般有用 看1
    Impala入门介绍一、impala基本介绍impala是cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具,impala是参照谷歌的新三篇论文(Caffeine--网络搜索引擎、Pregel--分布......
  • CentOs云服务器安装docker+前端部署(仅http)
    安装dockersudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.reposudoyuminstalldocker-cedocker-ce-clicontainerd.io设置开机自启:systemctlenabledocker.service创建docker网络,网络名字自定义dockernetworkcreatebalab......
  • TSINGSEE青犀多模型、算力调度与智能分析AI算法中台介绍及应用
    TSINGSEE青犀AI算法中台是一款平台型产品,专注于提供各行业中小场景中部署解决方案。平台具备接入广、性能强、支持跨平台、芯片国产化等特点,可提供丰富的视图接入能力和智能分析能力。平台将不同类型、不同协议前端设备,支持通过不同网络环境进行传输、汇聚、处理,并能在平台内部进......
  • 深度学习技巧应用39-深度学习模型训练过程中数据均衡策略SMOTE的详细介绍,以及SMOTE的
    大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用39-深度学习模型训练过程中数据均衡策略SMOTE的详细介绍,以及SMOTE的算法原理与实现,本文介绍了一种用于处理分类数据不平衡问题的过采样方法——SMOTE算法。SMOTE算法通过在少数类的样本之间插值来创建新的样本,从而增加少......