自学docker必备的课程笔记,b站上看到动力节点的docker视频教程,搬运了相关学习笔记,按照章节整理分享给需要的朋友们~
课程学习地址:https://www.bilibili.com/video/BV1sb411X7oe
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 容器应用,由于直接运行于宿主机系统中,无需启动操作系统,因此可以做到秒级、甚至毫秒级的启动。
1.3.4 更轻松的维护和扩展
Docker公司及各个开源项目团队一起维护了一大批高质量的官方镜像,既可以直接在生产环境使用,又可以作为基础进一步定制,大大的降低了应用服务的镜像制作成本。
Docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。
1.4 容器与虚拟机的区别
Docker容器的本质就是通过容器虚拟技术虚拟出的一台主机,就像虚拟机一样。可以将应用及其