1、Docker 是什么?
- Docker是一个开源的应用容器引擎,基于 GO 语言,并遵循 Apache2.0协议。
- docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化。
- 容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。
2、Docker 优势!
2.1、容器化越来越受到欢迎,因为容器是:
- 灵活:即使是最复杂的应用也可以集装箱化。
- 轻量级:容器利用并共享主机内核。
- 可互换:您可以即时部署更新和升级。
- 便携式:您可以在本地构建,部署到云,并在任何地方运行。
- 可扩展:您可以增加并自动分发容器副本。
- 可堆叠:您可以垂直和即时堆叠服务。
2.1、镜像和容器(contalners)
- 通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括应用程序所需要的所有内容,包含代码,运行时间间,库、环境变量和配置文件。
- 容器是镜像的运行实例,当被运行时有镜像转台和用户进程,可以使用
docker ps
查看。
2.2、容器和虚拟机区别
- 容器在Linux 本机上运行,并于其他容器共享主机的内核,它运行的一个独立的进程,不占用任何其他的可执行文件的内存,十分轻量。
- 虚拟机运行时的是一个完成的操作系统,通过虚拟机管理程序对主机资源的访问进行虚拟访问,相比之下需要的资源更多。
3、Docker 版本
- Docker Community Edition(CE)社区版。
- Enterprise Edition(EE) 商业版。
Docker 三个重要概念
-
image 镜像
Docker 镜像(Image)就是一个只读模板。他是一个可运行的软件(MySQL,Tomcat),也可以是一个系统(Centos),镜像可以用来创建 Docker 容器,一个容器可以创建很多个镜像。
-
container 容器
Docker 利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动、开始、停止、删除、每个容器之间都是相互隔离的,保证安全的平台,可以把容器看作是一个简易版的 Linux 环境 (包括 Root 用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。
-
repository 仓库
- 仓库是集中镜像文件的仓库,registry 是仓库的主从服务器,实际上是参考注册服务器上存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
- 仓库分为两种,公有仓库和私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下周,国内的docker pool,这里仓库的概念与Git类似,registry可以理解为github这样的托管服务。
镜像与容器的关系类似于面向对象编程中的对象和类:
Docker | 面向对象 |
---|---|
容器 | 对象 |
镜像 | 类 |
Docker 主要用途
- 简化环境搭建,提高开发生命周期效率,资源利用更出色。
- 自动迁移,可以制作镜像,迁移使用自定义的镜像即可迁移,不会出现什么问题,管理更加方便了。
- 微服务利器。