版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Docker简介
Docker是一个开源的应用容器引擎, 基于Go语言并遵从Apache 2.0协议开源
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级, 可移植的容器中, 然后发布到任何流行的Linux机器上, 也可以实现虚拟化
容器时完全使用沙箱机制, 相互之间不会有任何接口, 更重要的是容器性能开销极低
Docker的应用场景
- Web应用的自动化打包和发布
- 自动化测试和持续集成, 发布
- 在服务型环境中部署和调整数据库或其他的后台应用
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS(Platform-as-a-Service)环境
Docker引擎
Docker引擎是一个包含以下主要组件的客户端服务器应用程序
- 一种服务器, 它是一种称为守护进程并且长时间运行的程序
- REST API用于指定程序可以用来与守护进程通信的接口, 并指示它做什么
- 一个有命令行界面工具的客户端
Docker引擎组件的流程如下图所示:
Docker的系统架构
Docker使用客户端/服务器(C/S)架构模式, 使用远程API来管理和创建Docker容器
Docker容器通过Docker镜像来创建
容器与镜像的关系类似于面向对象编程中对象与类。
标题 |
说明 |
镜像(Images) |
Docker镜像是用于创建Docker容器的模板 |
容器 |
容器时独立运行的一个或一组应用 |
客户端 |
Docker客户端通过命令行或者其他工具使用Docker API |
主机 |
一个物理或者虚拟的机器用于执行Docker守护进程和容器 |
仓库 |
Docker仓库用来保存镜像, 可以理解为代码控制中的代码仓库 |
Docker Machine |
Docker Machine是一个Docker安装的命令行工具, 通过一个简单的命令即可以在相应的平台上安装Docker. |