Docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

由于其基于LXC的轻量级虚拟化的特点,docker相比KVM 虚拟机,之类最明显的特点就是启动快,资源占用小。因此对于构建隔离的标准化的运行环境,轻量级的PaaS(如dokku), 构建自动化测试和持续集成环境,以及一切可以横向扩展的应用(尤其是需要快速启停来应对峰谷的web应用)。 最大的好处是让各种语言写的程序,及它们的依赖项,运行在同一个环境中。

一个完整的Docker有以下几个部分组成:

  1. Docker Image 镜像
  2. Docker Container 容器
  3. Docker repository 仓库 registry注册服务器
  4. Docker Client 客户端
  5. Docker Daemon 守护进程

Image 镜像

Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

Container 容器

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

Repository registry 仓库

仓库可看成一个代码控制中心,用来保存镜像。(类似于Git的 repository 不过这个是存代码文件的) 一个Registry 里面可以存储多个的Repository。 公共的的Reigistry 是 hub.docker.com 在这边我们可以找到很多开源的的公共镜像。 当然我们也可以自己架设自己的 registry.

Client 客户端 与 Daemon 守护进程

Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。

参考 官方文档

最近更新的
...