文章目录
一、Docker 概述
1.1 Docker 为什么出现
-
要解决的问题
一款产品: 开发 – 上线 两套环境! 应用环境, 应用配置!开发 – 运维.
问题: 我在我的电脑上可以运行! 版本更新, 导致服务不可用! 对于运维来说, 考验就十分大!
环境配置十分的麻烦, 每一个机器都要部署环境(集群Redis、ES、Hadoop…)! 费时费力。
发布一个项目(jar + (Redis + MySQL jdk ES)), 项目能不能都带上环境安装打包!
之前在服务器配置一个应用的环境 Redis MySQL jdk ES Hadoop , 配置超麻烦, 不能够跨平台.
Windows, 最后发布到 Linux!
传统: 开发jar, 运维来做!
现在: 开发打包部署上线, 一套流程做完! -
解决方案
java – apk – 发布( 应用商店) — 张三使用apk — 安装即可用
java – jar(环境) – 打包项目带上环境(镜像
) — (Docker仓库: 商店) — 下载我们发布的镜像 — 直接运行即可!Docker 给以上的问题, 提出了解决方案!
Docker的思想就是来自于 集装箱 !
JRE – 多个应用(端口冲突) – 原来都是交叉的!
隔离: Docker 核心思想! 打包装箱! 每个箱子是互相隔离的.
Docker 通过隔离机制
, 可以将服务器利用到极致!本质: 所有的技术都是因为出现了一些问题, 我们需要去解决, 才去学习!
1.2 Docker 的历史
1.3 聊聊 Docker
Docker是基于Go语言开发的开源项目 官网
文档地址 Docker的文档是超级详细的!
仓库地址:https://hub.docker.com/(发布docker镜像)
1.4 Docker 能干嘛
虚拟机技术
缺点:
1、资源占用十分多
2、冗余步骤多
3、启动很慢
容器化技术
容器化技术不是模拟的一个完整的操作系统
比较Docker和虚拟机技术的不同:
- 传统虚拟机虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
- 每个容器间是相互隔离,每个容器内都有一个属于自己的文件系统,互不影响