学习地址

B站地址

1.Docker为什么出现

  • 一款产品:开发–上线,需要两套环境!应用环境,应用配置!

  • 开发 — 运维。问题:我在我的电脑上可以运行!版本更新,导致服务器不可用!对于运维来说,就会比较麻烦,开发即运维。

  • 环境配置十分麻烦,每一个机器都需要部署环境(集群Redis、ES、Hadoop)!费时费力

  • 发布一个项目(jar +( Redis MySQL jdk ES)),项目能不能带上环境安装打包!

  • 之前在服务器配置一个应用的环境Redis、ES、Hadoop,配置很麻烦,不能跨平台。

  • Windows,最后发布到Linux!

  • 传统:开发jar,运维做!

  • 现在:打包部署上线,一套流程做完!

java – apk – 发布(应用商店) — 吕布云使用apk – 安装即可用
java – jar(环境) — 打包项目带上环境(镜像) – (Docker仓库:商店)– 下载我们发布的镜像 – 直接运行即可!

2.Docker的思想就来自于集装箱

  • JRE – 多个应用(端口冲突) – 原来都是交叉的
  • 隔离:Docker核心思想!打包装箱!每一个箱子是互相隔离的
  • 例如:我的博客和视频播放器放到两个容器里面运行,减小服务器的压力

3.Docker历史

2010年,几个搞IT的年轻人,就在美国成立了一家公司dotcloud
做一些pass的云计算服务!LXC有关的容器技术
他们将自己的技术 (容器化技术)命名就是Docker
Docker刚刚诞生的时候,没有引起行业的注意。dotcloud,就活不下去。
开源
2013年,Docker开源。
越来越多的人发现了Docker 的优点。Docker每个月都会更新一个版本
2014年4月9日,Docker1.0发布。
Docker为什么会这么受欢迎?十分的轻巧。
在容器技术出来之前,我们都是使用虚拟机技术!例如VMware

4.Docker内容

Docker是基于Go语言开发的!开源项目。

Docker官网

文档地址

Docker仓库

5.Docker能干嘛

之前的虚拟机技术


虚拟机技术缺点

  1. 资源占用多
  2. 冗余步骤多
  3. 启动很慢
容器化技术

容器化技术不是模拟的一个完整的操作系统

比较Docker和虚拟机技术的不同:

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
  • 容器内的应用直接运行在 宿主机的内核,容器是没有自己的内核的。也没有虚拟我们的硬件,所以就轻便了
  • 每个容器是相互隔离,每个容器都有一个属于自己的文件系统,互不影响。
DevOps(开发、运维)

应用更快速的交付和部署

传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行
更便捷的升级和扩缩容
使用Docker之后,我们部署应用就和搭积木一样!