内容简介:将程序和它的依赖环境打包成可运行的镜像,并在一个通用的统一的环境中运行的过程,就叫容器化.提供这个镜像运行的通用的统一的环境,就叫容器.试想一个稍微复杂的架构,可能要用到这些服务:可能遇到这些问题:
1. 什么是容器化
将程序和它的依赖环境打包成可运行的镜像,并在一个通用的统一的环境中运行的过程,就叫容器化.提供这个镜像运行的通用的统一的环境,就叫容器.
容器化有什么好处?
试想一个稍微复杂的架构,可能要用到这些服务:
- MySQL和 MongoDB 作为存储
- ES用作数据仓库
- 一个文件服务器专门用于落地日志
- Kafka用于消息机制和数据流的传输
- Redis为整个应用提供缓存支持
- ...
可能遇到这些问题:
- 由于开发,测试,生产等多个环境造成的重复部署问题
- 环境之间的差异导致的应用的不确定性
- 架构的日趋复杂化对于运维人员的要求越来越高
- 环境迁移的成本越来越高
针对这些问题,容器化给出了解决方案,开发人员构建好镜像,一次构建,处处运行.对于运维人员,只要搭建好用于容器运行的基础环境(利用Docker Machine,甚至只需要配置好系统ssh和sudoer即可),则镜像就可以自动部署并在其中运行.
2. 什么是Docker
Docker is a platform for developers and sysadmins to develop, deploy, and run applications with containers.
这是 Docker 官方给出对Docker的解释.可以看到,从开发到部署再到生产,Docker都可以很好的应对.
3. Docker入门名词解释
对于刚开始接触Docker的人来说,往往被一些概念拒之门外.
Image:即镜像,可以被Docker引擎加载并执行的最小单位.有各种开源软件官方制作的镜像发布在 https://hub.docker.com 上例如Ubuntu,Nginx等.也可以自己制作,然后推送到这里.
Container:约定俗成的翻译叫容器,Image(镜像)是放在Container(容器)中被执行的.
Service:即服务,指具备了更多应用属性的Container,可能光是一个Container还不足以很好的服务于一个应用.Service确定了Container的副本数量,CPU分配,内存分配,重启策略等等属性.可以简单理解为Service是一个Container的更进一步封装,使其更便于参与下一步的管理.
Swarm:即集群.在Swarm中,可以部署多个服务.通俗讲,就是用于一个Docker节点在不足以服务当前应用的时候,我们可以通过Docker Swarm技术将多个节点连接到一个Swarm中,服务于当前应用.每个节点可以是一台主机,也可以是一个虚拟机.
Stack:即栈,其实就是当前业务所需要的服务的集合,也就是整个应用的某一部分,或全部.通常就是指整个应用.
总结:这几个概念是层层递进的,
- Swarm除外,Image是最小单位,是一个安装好的服务.
- Container时Image运行时的环境,是一个运行中的服务.
- Service是一个配置了进程数,CPU,内存分配的更可控的服务.
- Stack则是多个Service的集合,用于协同完成各种任务.
- 最后是Swarm,是一个用于运行Stack的多"主机"(其实是Docker)环境.
- 最终,Docker是提供这一切的一个类似虚拟机但完全不同于虚拟机的高效软件,用于解决之前提到的那些问题.
此外,像是Docker Machine,Docker Network,Docker Compose等等重要概念的存在使得Docker更容易部署,其中Docker Network相比link更好的解决了容器间的连接问题,甚至会为compose配置中的服务自动建立网络.由于本文面向的是Docker的初学者,所以这些概念将在后续博客中详细介绍.
最后更新于 2018-08-05 04:30:06 并被添加「docker」标签,已有 1 位童鞋阅读过。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript
Douglas Crockford / Yahoo Press / 2008-5 / GBP 23.99
Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative b......一起来看看 《JavaScript》 这本书的介绍吧!