目录
容器发展过程
大部分应用是运行在服务器之上的。在以前,每台服务器只能运行单一的应用,这就会出现下面的问题:当业务部门想要增加一个新应用时,IT部门就需要采购一台新的服务器,然而为了避免出现服务器性能不足的情况,IT部门通常都会采购更大更好的服务器,造成了极大的成本开销。
为了解决这个问题,VMware公司推出了虚拟机技术,这使得多种应用可以稳定、安全的同时运行在一个服务器中。但是,虚拟机有许多的不足之处:依赖其专用的操作系统、可移植性差、启动慢、可移植性差。
于是,容器技术出现了,它与虚拟机模型相似,主要区别在于:容器运行不会独占操作系统(运行在相同宿主机上的容器是共享一个操作系统的,可以节省大量的系统资源)。除此之外,容器还具有启动快、便于迁移、节省维护成本和资金成本的优点。
在容器技术发展过程中,Docker技术被大众多接受。Docker是一个可以把开发的应用程序自动部署到容器的开源引擎,提供了一个轻量、快速的环境,能够运行开发者的程序,方便高效地将程序从开发者的笔记本部署到测试环境,然后再部署到生产环境。
Docker简介
使用Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如何管理容器。Docker 设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生产环境的一致性,从而降低那种“开发时一切都正常,肯定是运维的问题”的风险。
Docker组件
Docker的核心组件包括:Docker客户端和服务端、Docker镜像、Docker容器以及Registry。
Docker客户端和服务端
Docker是一个客户-服务器架构的程序。Docker客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
Docker镜像
Docker镜像就是一个只读的模板,类似于面向对象编程语言(C++或Java)中的类模板,用户基于镜像来创建Docker容器。一个镜像可以创建多个容器。
Registry
Register就是一个仓库,用于存放构建的镜像,主要分为私有和公有两种类型。Docker公司运营的公共Register叫做Docker Hub。用户可以在Docker Hub中注册账号,分享并保存自己构建的镜像。当然,在Docker Hub中也可以保存自己的私有镜像。
其次,用户可以架设自己的私有Register,后面讨论。
Docker容器
Docker容器是基于镜像启动起来的,容器中可以运行一个或多个进程。
Docker用途
- 加速本地开发和构建流程,使其更加高效、更加轻量化。
- 能够让独立服务或应用程序在不同的环境中,得到相同的运行结果。
- 用Docker创建隔离的环境来进行测试
- Docker可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是一开始就生产环境部署。
- 构建一个多用户的平台即服务基础设施。
- 高性能、超大规模的宿主机部署。
- 提供软件即服务应用程序。
- 为开发、测试提供一个轻量级的独立沙盒环境,或者将独立的沙河环境用于技术教学。