docker概念理解
docker概念理解
1、docker是什么
docker是一个应用打包、分发、部署的工具
可以理解为一个轻量的虚拟机,只虚拟你需要的运行环境
2、docker和虚拟机比较
虚拟机 | Dokcer | |
---|---|---|
跨平台 | 只能在桌面级系统运行(windows/mac), 无法在不带图形界面的服务器上运行 |
支持windows/mac/linux上运行 |
性能 | 性能损耗大,内存占用高,把整个完整系统虚拟出来 | 性能好,只虚拟软件所需运行环境, 最大化减少没有的配置 |
自动化 | 需要手动安装所有东西 | 一个命令即可自动部署所需环境 |
稳定性 | 稳定性不高、不同系统差异大 | 稳定性好,不同系统一样的部署方式 |
3、打包、分发、部署
- 打包:将软件所需的依赖、第三方库、软件打包到一起,变成一个安装包
- 分发:可以将打包好的安装包上传到一个镜像仓库,其他人可以方便快捷的获取和安装
- 部署:拿着安装包用简单的命令即可运行你的应用,自动拷贝出一样的运行环境
4、docker部署的优势
1)常规应用开发部署方式:
- 自己在 Windows 上开发、测试
- 打包为 Docker 镜像(可以理解为软件安装包)
- 各种服务器上只需要简单的命令即可部署好。
2)优点:
确保不不同机器上跑都是一致的运行环境,规避了本地机器跑没问题,怎么到服务器就各种问题了
5、docker通常用来做什么
- 应用分发、部署,方便传播给他人安装,特别是开源软件喝提供私有部署的应用
- 快速安装测试/学习软件。用完就丢(类似小程序),不把时间浪费在安装软件上,如reids/mongodb/elasticsearch/elk
- 多个版本软件共存,不污染系统环境,如python2/python3、redis4/redis5
- windows上体验/学习各种linux系统
6、镜像、容器
- 镜像:可以理解为软件安装包,可以方便的进行传播和安装
- 容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器