第1章 Docker 概述
1.1 课程引入
开发/运维互掐
1.1.1
开发与测试和运维间的矛盾,主要是由于环境的不同而引发的。如果能将开发人员使用的环境交给测试与运维使用,这些问题就都能解决。
1.1.2 DevOps
DevOps 是一种思想,是一种管理模式,是一种执行规范与标准。它主要是用于促进开发、测试与运维部门间的沟通、协作与整合。运维对架构师的抱怨
1.1.3
运维总是希望,如果能搞个一键部署,一下搞定就好了。学习中集群搭建的问题
1.1.4
在学习过程中,由于机器配置较低从而导致启动的虚拟机较少,影响学习效率。
1.2 Docker 简介
Docker 是一个开源的应用容器 Container 引擎, 其可以让开发者将应用及应用运行的环境打包到一个轻量级、可移植的镜像中,然后发布到任何流行的 Linux、Windows 机器上。Docker 原本是由一个 PaaS 提供商 dotCloud 公司的创始人 Solomon Hykes 发起的一个内部项目,是基于其多年云服务技术的一次革新,使用 Go 语言开发。2013 年 3 月开源,并
在 GitHub 上进行维护。后由于 Docker 项目的火爆,2013 年底,dotCloud 公司更名为 Docker,公司域名也变更为了 https://docker.com。云计算中的服务包括三个层次:IaaS、PaaS、SaaS。
1.3 Docker 的用途
提供统一的运行环境
1.3.1
在生产环境中,很多时候的开发、测试及上线环境都是不一样的,从而导致项目(war或 jar)在不同阶段出现很多其它阶段所不存在的奇怪的问题。Docker 容器除了可以提供相同的应用外,还提供了该应用的统一运行环境,确保在任何宿主机 HOST 上都可以跑出相同的结果。即 Docker = jar/war + 环境。便捷的应用迁移
1.3.2
由于 Docker 确保了统一的运行环境,使得应用的迁移更加便捷。无论是物理机、虚拟机、公有云、私有云,Docker 镜像的运行结果都是相同的。用户可以很方便地将一个平台上运行的应用,迁移到另一个平台上,而无需担心运行环境的变化导致应用无法正常运行。超快的启动时间
1.3.3
传统的虚拟机技术启动应用一般需要数分钟:首先需要启动虚拟机,然后再加载虚拟机操作系统,最后还需要再手工启动应用。而 Docker 容器应