Docker是个图标是鲸鱼的玩意 其实很早以前就知道Docker了 但一直没有深入接触(因为觉得可能比较难
这次稍微系统地学习一下 顺便记录一下
一、概述
Docker是一个开源的应用容器引擎 是一个轻量级容器技术
类似于虚拟机 但不是虚拟机 且实现了虚拟机的资源隔离 Docker的性能远远高于虚拟机(反正一大堆好处
Docker主要的应用场景:
若一个人要安装Windows原生系统 安装完毕还需要下载其它软件 例如QQ 微信等 还需要进行配置
另一个人也要安装Windows原生系统的话 同样安装完毕还需要下载其它软件 例如QQ 微信等 还需要进行配置
因此就有了Windows镜像系统:
一个人安装完了Windows原生系统 安装完了其它软件 配置好了 然后打包
另一个人直接安装镜像系统 安装完了就有了那些打包好的软件 包括配置好了的东西也会有
同样的 在开发或运维的过程中经常也需要给服务器安装各种各样的环境
例如MySQL Redis Tomcat等
尤其是在当今分布式集群趋势下 有很多服务器 要一个个安装 还要一个个进行配置 过于麻烦
那么 解决方案来了:
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级 可移植的容器中
然后发布到任何流行的Linux机器上 也可实现虚拟化
Docker支持将软件编译成一个镜像(就像windows系统的镜像) 然后在镜像中对各种软件做好配置
这样 就有了MySQL镜像 Redis镜像 Tomcat镜像 等各种软件的镜像 需要的时候直接下载对应的即可
将镜像发布出去之后 其他使用者可以直接使用这个镜像 直接放置于Docker中运行镜像即可
这个运行起来的镜像有一个专业术语 称为 容器
例:MySQL镜像运行后 就有了MySQL容器 MySQL就是在该容器之中运行
每个容器之间都是沙箱的隔离机制 相互之间不会有任何接口 且容器性能开销极低
二、核心概念
- Docker主机(Host):安装了Docker的机器
Docker是直接安装在操作系统之上的 无论是Windows还是Linux还是OS都可安装 - Docker客户端(Client):连接Docker主机从而进行操作
有命令行方式还有图形化界面方式操作 - Docker仓库(Registry):用于保存各种打包好的软件镜像
有公共仓库 也可以搭建私人仓库 - Docker镜像(Images):软件打包好的包
存放在Docker仓库中 - Docker容器(Container)