转载过程中,图片丢失,代码显示错乱。
为了更好的学习内容,请访问原创版本:
https://www.missshi.cn/api/view/blog/5a6327450a745f6335000001
Ps:初次访问由于js文件较大,请耐心等候(5s左右)
容器技术是指可以让多个独立的用户空间运行在同一台宿主机上。
容器只能运行与底层宿主机相同或相似的操作系统。
在超大规模的多租户服务部署、轻量级沙盒以及对安全要求不太高的隔离环境中,容器技术非常流行。
Docker可以认为是一种先进的容器技术。
本系列文章将从基本概念开始,到一些实践应用来逐步讲解Docker的概念与使用。
1. Docker简介
简单的说,Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。
Docker的目标如下:
- 提供一个简单、轻量的建模方式:Docker入门简单、可以很快的将自己的程序Docker化;同时,Docker容器拥有很高的性能,在一台宿主机中可以运行多个容器。
- 职责和逻辑相互分离:开发人员只需要专注于容器中运行的程序,而运维人员关心如何管理容器,分工明确。
- 快速、高效的开发周期:程序可移植性高,易于构建。
- 鼓励面向服务的架构:Docker鼓励面向服务的架构和微服务架构,即单个容器只运行一个应用程序或进程。
2. Docker组件
Docker包含如下一些核心组件:
- Docker客户端和服务器
- Docker镜像
- Registry
- Docker容器
Docker客户端和服务器
Docker本身是一个C/S(Client/Server)的架构。
Docker客户端负责向Docker服务器或守护进程发出请求,服务器或守护进程完成所有工作并返回结果。
Docker本身提供了一套完整的命令行工具,同时也提供了一整套RESTful API。
Docker镜像
镜像是Docker的基石。用户基于镜像来运行自己的容器。
可以把镜像认为是容器的“源代码”。通常,镜像的体积较小,易于分享、存储和更新。
Registry
Registry是一个用来保存用户镜像的一个仓库。
Registry分为公有和私有两种。目前,Docker公司运营的公共Registry称为Docker Hub。
我们可以在Docker Hub中上传自己的镜像,同样,我们也可以假设属于自己私有的Registry。
容器
镜像是Docker生命周期中的构建或打包阶段,容器则是启动或执行阶段。
3. Docker的用途
Docker容器具有如下一些特点:
- 可以为各种测试提供很好的沙盒环境;
- 具有“标准性”的特征,适合为服务创建构造块。
一些常用的场景如下:
- 加速本地开发和构建流程,使之更加高效、轻量化。
- 创建隔离的环境进行测试。
- 构建一个多用户的PaaS(Platform as a Service)基础设施。
- 为开发、测试提供轻量级的沙盒环境。
- 高性能、超大规模的宿主机部署。
4. Docker的管理与配置
Docker外围系统提供了各种各样功能的管理和配置工具。
例如后文中会讲到的Fig,Consul以及Swarm、Kubernetes等。
5. Docker的优势功能
- 文件系统隔离:每个容器都用自己的root文件系统。
- 进程隔离:每个容器都运行在自己的进程环境中。
- 网络隔离:容器间的虚拟网络接口和IP地址都是分开的。
- 资源隔离和分组:使用cgroups将CPU和内存之类的资源独立分配给每个Docker容器。
- 写时复制机制:文件系统分层、快速,且占用的磁盘空间更小。
- 日志功能:Docker容器日志正常记录,可以进行相应的查看。
- 交互式Shell功能:用户可以创建一个伪tty终端,从而得到一个交互式的shell环境。
6. 本系列博客的后续内容
在后续的系列文章中,我们将分别讲解如下的内容:
- Docker的安装
- Docker容器使用详解
- Docker镜像的使用详解
- Docker在测试中的实践应用
- Docker在开发环境中的使用实践
- Fig和Consul等Docker管理工具
- Docker API详解
- Docker常用命令总结手册
为了更好的学习内容,请访问原创版本:
https://www.missshi.cn/api/view/blog/5a6327450a745f6335000001
Ps:初次访问由于js文件较大,请耐心等候(5s左右)