2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Docker:具备一致性的自动化软件部署

  • 2013-04-11
  • 本文字数:1489 字

    阅读完需:约 5 分钟

PaaS 供应商 dotCloud 开源了自有平台上的关键组件 Docker 。Docker 是一种增加了高级 API 的 LinuX Container(LXC)技术,提供了能够独立运行 Unix 进程的轻量级虚拟化解决方案。它提供了一种在安全、可重复的环境中自动部署软件的方式。

Docker 使用标准化容器的概念,能够容纳软件组件及其依赖关系——二进制文件、类库、配置文件、脚本、Virtualenv、jar 包、gem 包、原始码等——而且可以在任何支持 cgroups 的 64 位(针对 x64)Linux 内核上运行。这样的容器可以部署在笔记本、分布式基础架构、云端或是其他地方,其对环境的保留适用于广泛的用途:持续部署、Web 部署、数据库群集、SOA 等等,对此, Mike Kavis 在他的博客中这样描述

作为应用开发者,与我相关的用例是使用 Docker 以简化持续交付过程。在我职业生涯中工作过的每个地方,在那些从大型机到客户端再到云端的岁月里,让不同的环境保持同步并成功测试应用简直是个噩梦。无论我们的流程有多好或者有多糟,在“Dev-QA-Stage-Prod(开发 - 质量保证 - 过渡 - 生产)”的迁移过程中的各个阶段里,代码从来就没有处于相同的环境。最后的结果就是,发布的产品总是出现质量问题。“它在测试阶段是好的”是仅次于“支票已经寄出了”(译者注:the check is in the mail 为美国俚语,意指某件应该发生某事但实际情况却与之不符,最早是债务人用于缓和债权人的愤怒情绪的一种借口)的推脱借口。

在持续交付(CD)过程中,_ 整个环境 _ 随着代码一起在“Dev-QA-Stage-Prod”的不同阶段间迁移。配置问题,系统环境不同的问题,借口都将不复存在。在 CD 过程中,如果代码在产品阶段出问题,那么在测试阶段也一样有问题。使用 Docker 的过程中,我知道能够通过编写脚本实现 CD 流程的自动化。我还知道,因为无需处理所有的安装和配置问题,随着创建新环境的速度加快,产品进入市场的速度也得到了提升。

dotCloud 的 CEO Solomon Hykes在PyCon 上演示了Docker ,宣称它是可重复的轻量级虚拟化解决方案,因为“它在进程层面是独立的,而且拥有自己的文件系统”。其API 允许系统管理员对容器进行一系列操作:开始、停止、复制、等待、提交、关联标准流、列出文件系统变更等等。

Docker 的主要特性如下:

  • 文件系统隔离:每个进程容器运行在完全独立的根文件系统里。
  • 资源隔离:可以使用 cgroup 为每个进程容器分配不同的系统资源,例如 CPU 和内存。
  • 网络隔离:每个进程容器运行在自己的网络命名空间里,拥有自己的虚拟接口和 IP 地址。
  • 写时复制:采用写时复制方式创建根文件系统,这让部署变得极其快捷,并且节省内存和硬盘空间。
  • 日志记录:Docker 将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
  • 变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
  • 交互式 Shell:Docker 可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互 shell。

目前,Docker 已在 Ubuntu 12.04 和 12.10 测试过,但 dotCloud 表示它应该能够在内核版本号 2.6.24 或更高的 Linux 上运行。它还可以在 Windows 或 Mac OS X 中,使用 Vagrant VirtualBox 的虚拟机里安装。Docker 是用 Go 语言编写的,并使用了 Linux 的 cgroup namespacing 、支持写时复制特性的 AUFS 文件系统以及 LXC 脚本。

查看英文原文: Docker: Automated and Consistent Software Deployments


感谢康锦龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-04-11 10:3825191
用户头像

发布了 256 篇内容, 共 87.0 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

基于亚马逊云科技构建音视频直播审核方案

亚马逊云科技 (Amazon Web Services)

通义灵码2.5智能体模式联合MCP:打造自动化菜品推荐平台,实现从需求到部署的全流程创新

穿过生命散发芬芳

MCP 通义灵码2.5

借助 CodeBuddy,轻松打造「一分钟冥想」App

繁依Fanyi

火山引擎引领“AI+视频云”融合创新,开启智能视频新时代

新消费日报

借助 CodeBuddy,我轻松开发出三分钟读书 App

繁依Fanyi

华为邀您相聚KubeCon China 2025,共绘云原生新一个十年

华为云原生团队

云计算 容器 云原生

模型蒸馏:“学神”老师教出“学霸”学生

Baihai IDP

程序员 AI LLM 模型蒸馏

年会抽奖不求人:用 CodeBuddy 快速打造炫酷抽奖助手,老板直呼专业!

不惑

CodeBuddy

打造一款属于我的在线加密实验室 —— CodeBuddy 实现 CryptoXLab 项目实录

繁依Fanyi

我的 PDF 工具箱:CodeBuddy 打造 PDFMagician 的全过程记录

繁依Fanyi

淘宝商品列表API接口攻略(附代码示例)

tbapi

淘宝API接口 天猫API接口 淘宝商品列表接口 天猫商品列表接口

「10秒发现,5分钟定位」- 阿里云EMAS应用监控引领全链路智能监控新时代

移动研发平台EMAS

监控 崩溃分析 应用性能监控产品 应用监控 应用性能监控

借助 CodeBuddy,我见证了一款在线代码格式化神器的诞生

繁依Fanyi

【线下沙龙】NineData x Apache Doris x 阿里云联合举办数据库技术Meetup,5月24日深圳见!

NineData

阿里云 Doris NineData 数据实时分析 数据同步迁移

融云上线智能回复助手,可丝滑融入业务流的 IM+AI 能力

融云 RongCloud

Coze扣子文档解析 VS. 专业OCR工具,RAG知识库性能评测!

合合技术团队

人工智能 OCR #大数据 文档解析

《算法导论(第4版)》阅读笔记:p95-p100

codists

算法

区块链DApp的开发技术方案

北京木奇移动技术有限公司

dapp开发 区块链开发 软件外包公司

借助 CodeBuddy,我轻松打造了图像滤镜工厂

繁依Fanyi

2025杭州人形机器人展会|加快推动人形机器人产业创新发展

AIOTE智博会

机器人展 智能机器人展 人形机器人展

淘宝图片搜索API秘籍!轻松获取相似商品数据

tbapi

淘宝API 淘宝图片搜索接口 淘宝图片搜索API 天猫图片搜索接口 淘宝图片api

AI 大模型入门 四:检索增强生成(RAG),自动生成精准用例!

测试人

软件测试

DApp开发的主要框架

北京木奇移动技术有限公司

dapp开发 区块链开发 软件外包公司

融云 uni-app IMKit 上线,1 天集成,多端畅行

融云 RongCloud

「今日一句」情绪签语 App:一次与 CodeBuddy 的共创之旅

繁依Fanyi

打卡习惯,记录坚持:我用 CodeBuddy 做了个毛玻璃风格的习惯打卡小应用

繁依Fanyi

等保测评流程

黑龙江陆陆信息测评部

区块链DApp的开发流程

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

如何基于ThinkPHP快速搭建婚恋交友小程序?相亲婚恋app源码架构详解

DUOKE七七

一次对话,让我10分钟打造一款拥有玻璃拟态风格的二维码生成大师

繁依Fanyi

我如何和 CodeBuddy 搭建「Gradia」渐变配色神器 —— 一场流动色彩的创造之旅

繁依Fanyi

Docker:具备一致性的自动化软件部署_Linux_Abel Avram_InfoQ精选文章