平台 工具
Win XShell5
Mac CRT/Item2/终端
Linux 终端
远程连接工具
课程目标
通过学习完本课程,达到以下目标
掌握容器特点及应用,了解其应用场景
掌握容器编排工具的设计理念及基本使用
掌握使用docker快速部署微服项目
课程内容
Docker
Docker快速实战
Docker核心原理
Docker高级应用
Docker的运维管理
第一部分 Docker快速入门
docker官网
github地址
Dcoker的历史
2010年,几个的年轻人,就在美国的旧金山成立了一家公司 dotcloud。做一些Paas平台的创业公司!
从事LXC(Linux Container容器)有关的容器技术!Linux Container容器是一种内核虚拟化技术,可以
提供轻量级的虚拟化,以便隔离进程和资源。他们将自己的技术(容器化技术)命名就是 Docker。
Docker刚刚延生的时候,没有引起行业的注意!虽然获得了创业孵化器(Y Combinator)的支持、也获得
https://www.docker.com
docker官方文档地址:
https://docs.docker.com/
https://github.com/docker/docker-ce
过一些融资,但随着IT巨头们(微软、谷歌、亚马逊等厂商)也进入PaaS凭他,dotCloud举步维艰,眼看
就活不下去!
2013年,dotCloud的创始人,28岁的Solomon Hykes做了一个艰难的决定,将dotCloud的核心引擎开
源,这项核心引擎技术能够将Linux容器中的应用程序、代码打包,轻松的在服务器之间进行迁移。这个
基于LXC技术的核心管理引擎开源后,让全世界的技术人员感到惊艳。感叹这一切太方便了!!越来越
多的人发现docker的优点!火了。Docker每个月都会更新一个版本!2014年6月9日,Docker1.0发
布!1.0版本的发布,标志着docker平台已经足够成熟稳定,并可以被应用到生产环境。
docker为什么这么火?因为docker十分的轻巧!在容器技术出来之前,我们都是使用虚拟机技术!在
window中装一个VMware,通过这个软件我们可以虚拟出来一台或者多台电脑!笨重!虚拟机也属于虚
拟化技术,Docker容器技术,也是一种虚拟化技术!
docker版本
docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业
版),本教程使用社区版(CE)。
DevOps(开发、运维)
一款产品: 开发–上线 两套环境!应用环境,应用配置!开发 — 运维。 问题:我在我的电脑上可以允
许!版本更新,导致服务不可用!对于运维来说考验十分大!!! 环境配置是十分的麻烦,每一个机器都要
部署环境(集群Redis、ES、Hadoop…) !费事费力。发布一个项目( jar + (Redis MySQL JDK ES) ),项目能
不能带上环境安装打包!之前在服务器配置一个应用的环境 Redis MySQL JDK ES Hadoop 配置超麻烦
了,不能够跨平台。
开发环境Windows,最后发布到Linux!
传统:开发jar,运维来做!
现在:开发打包部署上线,一套流程做完!
应用更快速的交付和部署
传统:帮助文档,安装程序。
Docker:打包镜像发布测试一键运行。
更便捷的升级和扩缩容
使用了 Docker之后,我们部署应用就和搭积木一样
项目打包为一个镜像,扩展服务器A!服务器B
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例!服务器的性能可以被压榨
到极致
特 性 容 器 虚 拟 机
启动速度 秒级 分钟级
性能 接近原生 较弱
内存代价 很小 较多
硬盘使用 一般为MB 一般为GB
运行密度 单机支持上千个容器 一般几十个
隔离性 安全隔离 完全隔离
迁移性 优秀 一般
什么是docker
当人们说“Docker”时,他们通常是指 Docker Engine,它是一个客户端 - 服务器应用程序,由 Docker
守护进程、一个REST API指定与守护进程交互的接口、和一个命令行接口(CLI)与守护进程通信(通过
封装REST API)。Docker Engine 从 CLI 中接受docker 命令,例如 docker run 、docker ps 来列出正
在运行的容器、docker images 来列出镜像,等等。
docker是一个软件,可以运行在window、linux、mac等各种操作系统上。
docker 是一个开源的应用容器引擎,基于Go 语言开发并遵从 Apache2.0 协议开源,项目代码托
管在github上进行维护
docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任
何流行的 Linux 机器上。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
docker基本组成
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker仓库(Registry):用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似
maven)
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
docker与操作系统比较
docker是一种轻量级的虚拟化方式。与传统操作系统技术的特性比较如下表:
传统的虚拟机方式提供的是相对封闭的隔离。Docker利用Linux系统上的多种防护技术实现了严格的隔
离可靠性,并且可以整合众多安全工具。从 1.3.0版本开始,docker重点改善了容器的安全控制和镜像
的安全机制, 极大提高了使用docker的安全性。
序号 硬件 要求
1 CPU 推荐2核
2 内存 至少2G
3 硬盘 至少50G
4 centos7.8
docker及K8S集群推荐
各位小伙伴使用centos7.8版本
主机名 IP地址 说明
docker-100 192.168.198.100 docker主机
安装docker前置条件
当我们安装 Docker 的时候,会涉及两个主要组件:
Docker CLI:客户端
Docker daemon:有时也被称为“服务端”或者“引擎”
硬件安装要求:
本章节硬件要求如下表:
节点信息
服务器用户名:root,服务器密码:123456 。及时做好系统快照。
centos下载
推荐大家使用centos7.8版本。版本号:CentOS-7-x86_64-Minimal-2003.iso
centos配置
查看centos系统版本命令:
配置阿里云yum源
http://mirrors.aliyun.com/centos/7/isos/x86_64/
cat /etc/centos-release
1.下载安装wget
yum install -y wget
2.备份默认的yum
mv /etc/yum.repos.d /etc/yum.repos.d.backup