Docker 基本概念

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 三个重要概念

  1. image 镜像

    Docker 镜像(Image)就是一个只读模板。他是一个可运行的软件(MySQL,Tomcat),也可以是一个系统(Centos),镜像可以用来创建 Docker 容器,一个容器可以创建很多个镜像。

  2. container 容器

    Docker 利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动、开始、停止、删除、每个容器之间都是相互隔离的,保证安全的平台,可以把容器看作是一个简易版的 Linux 环境 (包括 Root 用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。

  3. repository 仓库

    • 仓库是集中镜像文件的仓库,registry 是仓库的主从服务器,实际上是参考注册服务器上存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
    • 仓库分为两种,公有仓库和私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下周,国内的docker pool,这里仓库的概念与Git类似,registry可以理解为github这样的托管服务。

镜像与容器的关系类似于面向对象编程中的对象和类:

Docker 面向对象
容器 对象
镜像

Docker 主要用途

  1. 简化环境搭建,提高开发生命周期效率,资源利用更出色。
  2. 自动迁移,可以制作镜像,迁移使用自定义的镜像即可迁移,不会出现什么问题,管理更加方便了。
  3. 微服务利器。
原文地址:https://www.cnblogs.com/leizzige/p/12182755.html