docker 与 services 入门

【摘要】容器是当前面向服务软件的最佳实践之一,了解容器技术及其发展是程序员必修功课。本文简单介绍容器技术的发展与服务的关系,并配了学习容器服务技术的系列入门教程。

2013.03 - 2016.~ 在短短3年多时间内,Docker 从一个称为容器化的深奥且神秘的 Linux 内核技术,变成简单且人人会用的技术。docker 早年的关键词是容器(container)、工作进程(work-processing)、容器级虚拟化等等,目标是软件快速交付与测试。快速理解Docker - 容器级虚拟化解决方案描述的非常好。从 docker V1.12 开始1,官网出现最多的关键词开始转为服务(Services),它主推 docker swarm 技术,这不仅直接与 Google K8s(Kubernetes) 等主打容器即服务(CaaS)企业市场的厂家产生冲突,而且具有原生的竞争优势。如果你关注这种冲突对未来的影响,建议阅读(容器,你还能只用Docker吗?)。docker 从容器技术公司进入软件服务市场,从某种程度上顺应了对软件开发、交付、运维模式,特别是未来云服务软件提供模式的变革。

本文关注的话题是为什么必须了解容器技术?docker/container service(容器服务)事实上几乎是 SaaS(软件即服务) 的代名词。遥想是几年前,IBM 加持 SOA 概念,统领了几乎全球电子商务软件市场。随着互联网发展,SOA 理念依旧,却少见 IBM 的产品。人们不断探求 service oriented 的最佳技术,从目前看,container service 是实践 SOA 理念最佳技术土壤之一。特别是微服务架构(MicroService Architecture)的发展,软件开发、交付、运维方式已产生了本质的变化,容器改变了编程思考(如下图)。

dev-pattern

docker 官网列举了许多产品特性:

  • 敏捷
  • 可控
  • 可移植
  • … …

对于程序员,除了代码,任何词汇都是空洞的。因此,我们以 CentOS 7 为平台,按程序员实战需要,做了 6 个入门教程帮助程序员理解使用容器技术的简单性,以及容器与服务的关系,构建自己的容器服务。它们是:

这些简短的案例,忽略了很多重要内容,包括:

  • 容器的原理与格式
  • 容器中的网络
  • 进程通讯 - 环境变量与管道
  • 卷的管理
  • 构建本地镜像仓库
  • … …

既然目标是迅速入门,也没必要大而全。这些对于单机应用开发应该是足够的。

【完】


  1. Docker 1.12: Now with Built-in Orchestration! https://blog.docker.com/2016/06/docker-1-12-built-in-orchestration/
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐