Docker学习笔记——简介

Docker学习笔记——简介

什么是docker
Docker最初是由dotCloud公司创始人Solomon Hykes发起的一个公司内部项目,基于Go语言开发,目前主要的项目代码在GitHub上进行维护。

Docker is an open platform for developers and sysadmins to build,ship,and run distributed appplications,whether on laptops, data center VMs, or the cloud. Docker是一个应用容器(Application container),基于Linux内核,对进程进行封装与隔离,是操作系统层面的虚拟化技术,它宗旨是:“Build once, run everywhere”。

docker和虚拟机的区别
docker类似于VM,但是在原理和应用上有很大差别。
Docker学习笔记——简介

Docker学习笔记——简介

从上面两个图不难发现,虚拟机除了应用程序之外还需要携带操作系统,应用通过调用虚拟机的操作系统,然后虚拟机的操作系统调用Hypervisor调用宿主操作系统;而Docker中的应用通过Docker Engine调用宿主操作系统,显然更加高效、轻便。

docker架构
docker采用C/S架构,客户端和服务端可以运行在一个机器上,也可以通过socket或者RESTful API 来进行通信。

Docker学习笔记——简介

Docker daemon 一般运行与宿主后台,负责等待处理客户端发送的请求;
Docker client 为用户提供一套提供一套可执行的命令,用户使用这些命令与docker daemon进行交互。

docker组件
docker分为三个组件:

  1. 镜像:
    docker image 是一套特殊的文件系统,提供一套完整的操作系统运行环境和所需的应用程序。用户可以使用镜像创建容器,镜像不包含任何的动态数据,在构建之后不能改变。

  2. 容器:
    镜像和容器的关系类似于面向对象中类与实力的关系,镜像是静态的定义,容器是镜像运行时的实例。容器可以被创建、启动、停止、删除、暂停等操作

  3. Registry:
    Docker Registry提供集中存储、分发镜像的服务,一个docker registry中可以包含多个仓库,每个仓库可以包含多个标签,每个标签对应一个镜像。