内容无关性是指:程序可以在容器里运行,不区分语言,可以封装任何有效负载及其依赖项。在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视频教程》
以上是在docker中内容无关性是指什么的详细内容。更多信息请关注PHP中文网其他相关文章!