1、Docker是什么
Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。
Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。
Docker是一个用于开发,交付和运行应用程序的开放平台。Docker将应用程序与基础架构分开,从而可以快速交付软件。 通过利用Docker的快速交付,测试和部署代码的方法,可以大大减少编写代码和在生产环境中运行代码之间的延迟。
2、Docker的分层架构
Docker采用典型的CS架构设计, 通过Client端与Server端的通信,Server端的守护程序完成了构建、运行和分发Docker容器的繁重工作。通信方式有Unix套接字、Restful API、网络接口、命令行等。Client端可以请求多个后端Server守护进程,Server端可以是远程。
3、Docker的基本概念
- Docker客户端
用来与docker守护进程通信的主要方式。
- Docker守护进程
Docker安装后,会在后台启动一个名为dockerd的守护进程,监听来自client端的请求,管理Docker对象,如镜像images,容器containers,网络networks,挂在容量volumes等。同时,还能与其他守护进程通信。
- Docker仓库
用来存储镜像,可以创建共有仓库,私有仓库。
- Docker对象
Images
镜像是用来创建docker容器的只读模板。镜像常常用其他基础镜像模板创建,比如,基于ubuntu基础镜像构建一个web服务, 只需要把所需要的web服务配置进去,就能制作一个新的docker镜像。一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时环境和配置文件。此外,我们可以直接从镜像仓库下载所需要的docker镜像。
Containers
容器是从镜像创建的运行实例,它可以被启动、开始、停止、删除。每个容器都是互相隔离的,我们可以控制容器间以及容器和主机间的网络,存储的隔离程度。