docker概念理解

1、docker是什么

docker是一个应用打包、分发、部署的工具
可以理解为一个轻量的虚拟机,只虚拟你需要的运行环境

2、docker和虚拟机比较

虚拟机

Dokcer

跨平台

只能在桌面级系统运行(windows/mac),

无法在不带图形界面的服务器上运行

支持windows/mac/linux上运行

性能

性能损耗大,内存占用高,把整个完整系统虚拟出来

性能好,只虚拟软件所需运行环境,

最大化减少没有的配置

自动化

需要手动安装所有东西

一个命令即可自动部署所需环境

稳定性

稳定性不高、不同系统差异大

稳定性好,不同系统一样的部署方式

3、打包、分发、部署

  • 打包:将软件所需的依赖、第三方库、软件打包到一起,变成一个安装包
  • 分发:可以将打包好的安装包上传到一个镜像仓库,其他人可以方便快捷的获取和安装
  • 部署:拿着安装包用简单的命令即可运行你的应用,自动拷贝出一样的运行环境

4、docker部署的优势

1)常规应用开发部署方式:

  1. 自己在 Windows 上开发、测试
  2. 打包为 Docker 镜像(可以理解为软件安装包)
  3. 各种服务器上只需要简单的命令即可部署好。

2)优点:
确保不不同机器上跑都是一致的运行环境,规避了本地机器跑没问题,怎么到服务器就各种问题了

5、docker通常用来做什么

  1. 应用分发、部署,方便传播给他人安装,特别是开源软件喝提供私有部署的应用
  2. 快速安装测试/学习软件。用完就丢(类似小程序),不把时间浪费在安装软件上,如reids/mongodb/elasticsearch/elk
  3. 多个版本软件共存,不污染系统环境,如python2/python3、redis4/redis5
  4. windows上体验/学习各种linux系统

6、镜像、容器

  • 镜像:可以理解为软件安装包,可以方便的进行传播和安装
  • 容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器