当前位置: 首页 > news >正文

docker容器技术

docker容器技术

一、什么是容器?

容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。

简单来说,一个容器包含了完整的运行时环境:除了应用程序本身之外,这个应用所需的全部依赖、类库、其他二进制文件、配置文件等,都统一被打入一个称为容器镜像的包中。通过将应用程序本身,和其依赖容器化,操作系统发行版本和其他基础环境造成的差异,都被抽象掉了。

容器由两部分组成:

  1. 应用程序本身

  2. 依赖:比如应用程序需要的库或其他软件

二、容器的标准化

在2015年,由Google、Docker、CoreOS、IBM、微软、红帽等厂商联合发起的OCI(Open Container Initiative)组织成立了,并于2016年4月推出了第一个开放容器标准。标准主要包括runtime spec标准和image format spec标准。标准的推出,有助于替成长中市场带来稳定性,让企业能放心采用容器技术,用户在打包、部署应用程序后,可以自由选择不同的容器Runtime;同时,镜像打包、建立、认证、部署、命名也都能按照统一的规范来做。

Runtime是容器真正运行的地方,Runtime需要跟操作系统kernel紧密协作,为容器提供运行环境。目前主流的三种容器Runtime有:lxc、runc、rkt。

  1. Lxc是Linux上老牌runtime。Docker最初也是使用lxc作为runtime。

  2. Runc是Docker自己开发的容器runtime,符合OCI规范,也是现在的默认runtime。

  3. rkt是CoreOS开发的容器runtime,符合OCI规范,因而能够运行Docker的容器。

三、什么是docker?

Docker于2013年3月以Apache 2.0授权协议开源,Docker是用Go语言编写,主要项目代码在GitHub上进行维护。

Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使用户能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,用户可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的快速交付,测试和部署代码的方法,用户可以大大减少编写代码和生产环境中运行代码之间的延迟。

四、docker的优势

容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高。传统虚拟机方式运行10个不同的应用就要启动10个虚拟机,而Docker只需要启动10个隔离的应用即可。

具体来说,Docker在如下几个方面具有较大的优势:

  1. 更快的交付和部署: 开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。Docker可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker容器很轻很快,容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

  2. 更高效的虚拟化: Docker容器的运行不需要额外的hypervisor支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

  3. 更轻松的迁移和扩展: Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另一个平台。

  4. 更简单的管理: 使用Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

五、docker架构结构

Docker使用了C/S体系架构,Docker客户端与Docker守护进程通信,Docker守护进程负责构建,运行和分发Docker容器。Docker客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过UNIX套接字或网络接口进行通信。

Docker核心组件包括五种:

  1. Docker客户端

  2. Docker服务器

  3. Docker镜像

  4. Docker容器

  5. Registry

5.1 Docker客户端

最常用的Docker客户端是docker命令。通过docker我们可以方便地在宿主机上构建和运行容器。除了docker命令行工具,用户也可以通过REST API与服务器通信。

5.2 Docker服务器

Docker daemon是服务器组件,以Linux后台服务的方式运行。Docker daemon运行在Docker host上,负责创建、运行、监控容器、构建,存储镜像。默认Docker daemon只能响应来自本地host的客户端请求。

5.3 Docker镜像

可以将Docker镜像看成只读模板,通过它可以创建Docker容器。

5.4 Docker容器

Docker容器就是Docker镜像的运行实例。用户可以通过CLI(docker)或是API启动、停止、移动或删除容器。可以这么认为,对于应用软件,镜像是软件生命周期的构建和打包阶段,而容器则是启动和运行阶段。

5.5 Registry

Registry是存放Docker镜像的仓库,Registry分私有和公有两种。

公有仓库:最大的公有仓库是官方提供的Docker Hub,其中存放着数量庞大的镜像供用户下载。国内如:腾讯云、阿里云也提供了仓库的本地源,可以提供稳定的国内访问。

私有仓库:用户不希望公开分享镜像文件,Docker也支持用户在本地网络内创建一个只能自己访问的私有仓库。

http://www.dtcms.com/a/457383.html

相关文章:

  • 线程与进程理论知识入门
  • 从零搭建 RAG 智能问答系统2:实现chainlit个性化设计以及文件上传预览
  • AI智能体(Agent)大模型入门【11】--基于llamaindex框架和fastapi框架完善页面和大语言模型对话的一些扩展接口
  • Linux进程第六讲——深入理解fork系统调用(下)
  • 织梦网站模板免费网站ico制作
  • 邹城网站建设多少钱做的比较好看的网站
  • Python 运算符与列表(list)
  • 鸿蒙NEXT Basic Services Kit:打造更稳固的应用基石
  • 使用 OpenAPI 构建 API 文档
  • 【C语言基础】03. 函数详解:从概念到高级应用
  • 精通C语言(2.结构体)(内含彩虹)
  • 如何做交互式网站百度发布信息的免费平台
  • 爬虫学习笔记
  • javaweb配置(自用)
  • VS Code行为数据的A/B测试方法论
  • JavaScript进阶篇:DOM核心知识解读
  • 网站吸流量wordpress isux主题
  • C++学习记录(16)红黑树
  • 前后端Long类型ID精度丢失问题
  • 微信小程序,组件中使用全局样式
  • 做网站必须要认证吗poi player wordpress
  • pytest+requests+allure生成接口自动化测试报告
  • leetcode 2300 咒语和药水的成功对数
  • 湖南城乡建设部网站首页长沙网红店
  • 从 0 到 1 搭建实时数据看板:RabbitMQ+WebSocket 实战指南
  • Linux(含嵌入式设备如泰山派)VNC 完整配置指南:含开机自启动(适配 Ubuntu/Debian 系)
  • 网站营销活动泰安市高新区建设局网站
  • 玳瑁的嵌入式日记 --------API总结
  • [xboard] 26 kernel启动流程之initrd、initramfs、ramdisk核心异同
  • 鸿蒙实现滴滴出行项目之侧边抽屉栏以及权限以及搜索定位功能