Docker 入门简介

栏目: 编程工具 · 发布时间: 5年前

内容简介:将程序和它的依赖环境打包成可运行的镜像,并在一个通用的统一的环境中运行的过程,就叫容器化.提供这个镜像运行的通用的统一的环境,就叫容器.试想一个稍微复杂的架构,可能要用到这些服务:可能遇到这些问题:

1. 什么是容器化

将程序和它的依赖环境打包成可运行的镜像,并在一个通用的统一的环境中运行的过程,就叫容器化.提供这个镜像运行的通用的统一的环境,就叫容器.

容器化有什么好处?

试想一个稍微复杂的架构,可能要用到这些服务:

  1. MySQL和 MongoDB 作为存储
  2. ES用作数据仓库
  3. 一个文件服务器专门用于落地日志
  4. Kafka用于消息机制和数据流的传输
  5. Redis为整个应用提供缓存支持
  6. ...

可能遇到这些问题:

  1. 由于开发,测试,生产等多个环境造成的重复部署问题
  2. 环境之间的差异导致的应用的不确定性
  3. 架构的日趋复杂化对于运维人员的要求越来越高
  4. 环境迁移的成本越来越高

针对这些问题,容器化给出了解决方案,开发人员构建好镜像,一次构建,处处运行.对于运维人员,只要搭建好用于容器运行的基础环境(利用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:即栈,其实就是当前业务所需要的服务的集合,也就是整个应用的某一部分,或全部.通常就是指整个应用.

总结:这几个概念是层层递进的,

  1. Swarm除外,Image是最小单位,是一个安装好的服务.
  2. Container时Image运行时的环境,是一个运行中的服务.
  3. Service是一个配置了进程数,CPU,内存分配的更可控的服务.
  4. Stack则是多个Service的集合,用于协同完成各种任务.
  5. 最后是Swarm,是一个用于运行Stack的多"主机"(其实是Docker)环境.
  6. 最终,Docker是提供这一切的一个类似虚拟机但完全不同于虚拟机的高效软件,用于解决之前提到的那些问题.

此外,像是Docker Machine,Docker Network,Docker Compose等等重要概念的存在使得Docker更容易部署,其中Docker Network相比link更好的解决了容器间的连接问题,甚至会为compose配置中的服务自动建立网络.由于本文面向的是Docker的初学者,所以这些概念将在后续博客中详细介绍.

最后更新于 2018-08-05 04:30:06 并被添加「docker」标签,已有 1 位童鞋阅读过。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

单元测试之道Java版

单元测试之道Java版

David Thomas、Andrew Hunt / 陈伟柱、陶文 / 电子工业 / 2005-1 / 25.00元

程序员修炼三部曲丛书包含了四本书,介绍了每个注重实效的程序员和成功团队所必备的一些工具。 注重实效的程序员都会利用反馈来指导开发,并驱动个人的开发流程。编码的时候,最有用的反馈来自于“单元测试”。 为了测试一座桥梁,不会只在晴朗的天气,开一辆汽车从桥中间穿过,就认为已经完成了对桥梁的测试。然而许多程序员却正在使用这种测试方法——把这种一次顺利通过称为“测试”。事实上,注重实效的程序员应......一起来看看 《单元测试之道Java版》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器