目录
1.Docker 简介
2.跟普通虚拟机的对比
2.打包、分发、部署
Docker主要理念:一次封装(打包)随处运行(部署)
4.Docker 部署的优势
5.Docker 通常用来做什么
6.重要概念:镜像、容器、仓库
Docker 官方博客:Docker: Accelerated Container Application Development
Docker 官方文档:Docker Docs
Docker hub备用地址(国内可访问):https://hub-stage.docker.com/
Docker 自学文档(博主自己写的建议使用):🎉 Docker 简介和安装 - Docker 快速入门
1.Docker 简介
(1)Docker是什么?
Docker是基于Go语言编写的开源项目,是一套完整的容器管理系统
Docker的思想来源于集装箱,让容器之间相互隔离,与系统相互隔离
(2)docker干什么的?
Docker 是一个应用打包、分发、部署的工具
你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。
通俗的说 Docker 就像是一个集装箱。
这个集装箱可以把各种应用程序和它们需要的所有东西,比如运行环境、配置文件等等,都打包放进去。然后呢,这个集装箱可以很方便地在不同的地方移动和运行,不管是在你的电脑上,还是在服务器上,甚至在其他的机器上。
有了 Docker,开发者就不用再担心不同的环境会导致应用出问题,因为集装箱里已经包含了一切应用正常运行所需要的。而且它使得部署应用变得超级简单快捷,就像搬个箱子那么容易。
2.跟普通虚拟机的对比
特性 | 普通虚拟机 | Docker |
跨平台 | 通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行 | 支持的系统非常多,各类 windows 和 Linux 都支持 |
性能 | 性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了 | 性能好,只虚拟软件所需运行环境,最大化减少没用的配置 |
自动化 | 需要手动安装所有东西 | 一个命令就可以自动部署好所需环境 |
稳定性 | 稳定性不高,不同系统差异大 | 稳定性好,不同系统都一样部署方式 |
2.打包、分发、部署
打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包
分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装
部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 Windows/Mac/Linux。
Docker主要理念:一次封装(打包)随处运行(部署)
4.Docker 部署的优势
常规应用开发部署方式:自己在 Windows 上开发、测试 --> 到 Linux 服务器配置运行环境部署。
问题:我机器上跑都没问题,怎么到服务器就各种问题了
用 Docker 开发部署流程:自己在 Windows 上开发、测试 --> 打包为 Docker 镜像(可以理解为软件安装包) --> 各种服务器上只需要一个命令部署好
优点:确保了不同机器上跑都是一致的运行环境,不会出现我机器上跑正常,你机器跑就有问题的情况。
例如 易文档,SVNBucket 的私有化部署就是用 Docker,轻松应对客户的各种服务器。
5.Docker 通常用来做什么
应用分发、部署,方便传播给他人安装。特别是开源软件和提供私有部署的应用
快速安装测试/学习软件,用完就丢(类似小程序),不把时间浪费在安装软件上。例如 Redis / MongoDB / ElasticSearch / ELK
多个版本软件共存,不污染系统,例如 Python2、Python3,Redis4.0,Redis5.0
Windows 上体验/学习各种 Linux 系统
6.重要概念:镜像、容器、仓库
镜像(images):可以理解为软件安装包,可以方便的进行传播和安装。
容器(container):软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器。
仓库(Repository):仓库是集中存放镜像的场所,仓库分为公开仓库(public)和私有仓库(private)
● 最大的公开仓库为docker hub(国内用户需fan墙使用)
● 国内的公开仓库包括:阿里、网易、中科大等