PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

在docker中内容无关性是指什么

青灯夜游
青灯夜游 原创
2022-05-12 15:07:21 3252浏览

内容无关性是指:程序可以在容器里运行,不区分语言,可以封装任何有效负载及其依赖项。在docker中,不管针对的具体容器内容是什么,容器标准操作执行后都能产生同样的效果;如容器可用同样方式上传、启动,不管是php应用还是mysql数据库服务。

本教程操作环境:linux7.3系统、docker20版、Dell G3电脑。

什么是Docker?

Docker是一个开源的应用容器引擎,它基于go语言开发,并遵从Apache2.0开源协议。使用Docker可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的 Linux 机器上,也可以实现虚拟化。Docker 容器完全使用沙箱机制,相互之间不会有任何接口,这保证了容器之间的安全性。

Docker诞生于2013年初,目前有两个版本,Community Edition(CE,社区版)和Enterprise Edition(EE,企业版)。其中Docker社区版是免费开源的,对于个人和小团队来说是比较理想的选择;Docker企业版则是收费的,是专门为企业和大型IT团队提供的,用于要求比较严格的商业应用中。

Docker的主要功能特征

内容无关性(Content Agnostic)

程序可以在容器里运行,不区分语言,可以封装任何有效负载及其依赖项。

不管针对的具体容器内容是什么,容器标准操作执行后都能产生同样的效果。如容器可以用同样的方式上传、启动,不管是PHP应用还是MySQL数据库服务。

硬件无关性(Hardware Agnostic)

使用操作系统基元(例如:LXC)几乎可以在任何平台上运行——虚拟机、裸机、OpenStack、公共IaaS等,并且无需修改

内容隔离和交互

资源、网络和内容隔离,避免依赖地狱

自动化

运行、启动、停止、提交、搜索等都有标准的操作,非常适合devops:CI、CD、自动扩展、混合云

高效

轻量级、几乎没有任何偏向和启动惩罚,可以进行快速移动和操作

职责分离

开发人员担心代码,运营人员担心基础设施

更多技术特性:

  • 文件系统隔离:每个进程容器都运行在一个完全独立的根文件系统里;

  • 资源隔离:系统资源,例如CPU、内存等,使用cgroups分配在不同的流程容器里;

  • 网络隔离:每个进程容器携带自身的一个虚拟接口和IP地址运行在自己的网络空间;

  • 即写即拷(Copy-on-write):使用即写即拷方式创建根文件系统,这样部署速度极快、内存和硬盘空间极少;

  • 日志:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索;

  • 变更管理:容器文件系统的变更可以提交到新的映像(image)中,并可重复使用以创建更多的容器。无需使用模板或手动配置;

  • 交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell。

Docker通常用于如下场景

web应用的自动化打包和发布;

自动化测试和持续集成、发布;

在服务型环境中部署和调整数据库或其他的后台应用;

从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

推荐学习:《docker视频教程

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。