其他文章:
一、概述
出现
实际开发中,多套环境,很多配置。常出现的问题:我的机器上可以运行,你的机器不能运行。
传统情况下开发和运维两个人做,一个提供jar,一个安装环境(mysql、redis)并发布。通过docker可以直接打包部署上线,一套流程做完,有点像从应用商店直接下载安装即可(DevOps),并且快速的扩缩容。
jar----jar(环境)----打包项目带上环境(镜像)----Docker仓库(应用商店)----下载镜像-----直接运行。
Docker的图标:集装箱
核心:核心思想是资源隔离,打包装箱,每个箱子是相互隔离的
Docker通过隔离机制,可以将服务器利用到极致!
相关知识
Docker出现之前使用的是虚拟机技术。
虚拟机和Docker的区别。
虚拟机:笨重。每个虚拟机都是一个原生的镜像,需要开启多个虚拟机。几个G,启动慢。
容器:也是虚拟化技术。镜像十分小巧(最核心环境4M+jdk+mysql),运行镜像就可以了。秒级启动。
- 虚拟机:虚拟机是一个完整的操作系统(包括完整的软硬件)。是硬件级别的虚拟化。
app就是我们发布的项目
- 容器化技术: 容器不是一个完整的操作系统。是内核级别的虚拟化。
容器内的应用直接运行在宿主机的内部,容器没有自己的内核,也不需要虚拟硬件,每个容器是隔离的,每个docker有一个属于自己的文件系统,互不影响。
其他:docker是go语言开发的。开源的。
官方文档(十分详细):https://docs.docker.com/
仓库地址(像git仓库):https://hub.docker.com/