容器化应用:
软件应用(例如数据库服务器或 HTTP 服务器)通常部署到虚拟 机或物理主机的运行有一组服务的操作系统中软件应用受运行环境限制,操作系统的任何更新或补丁都可能会 破坏该应用 对于开发应用的公司,对运行环境的任何维护都需要进行测试, 保证任何系统更新不会影响到应用 根据应用的复杂性,测试并不容易。而且更新通常要停止应用, 需在环境中启用高可用,增加了复杂性
系统管理员可选择使用容器,提供许多与虚拟机相同的优点,如 安全、存储和网络隔离等,但要求的资源要少得多,而且启动和 终止速度也更快 利用容器不仅能提升应用的效率、弹性和可重复利用性,也可加 强应用的移植能力。容器厂家有许多,如 Rocket、Drawbridge 和 LXC,但其中最大提供商是 Docker 以下为容器的一些主要优点:
- 硬件占用量少 - 环境隔离
- 快速部署
- 多环境部署
- 可重复利用
Docker 架构:
Docker 是一种容器实现方式,受到多家公司的支持,红帽在红帽 企业 Linux Atomic Host 平台中提供支持Docker Hub 提供大量由社区开发的容器
Docker 采用 CS 架构:
- 客户端:docker 命令负责与服务器通信,通过 RESTful API 操作
- 服务器端:docker 服务作为守护进程运行,承担创建、运行和下 载容器镜像的任务
Docker 核心三元素:
镜像:image 是只读模板,其中包括应用的库和运行环境。镜像 用于创建容器。可以创建、更新或下载镜像
注册表:registry 存储镜像,也可称为镜像仓库,以满足公共或 私有的用途。知名的公共注册表为 Docker Hub,它存储了由社 区开发的多种镜像。也可在公司中创建私有注册表。本课程在一 台虚拟机上运行私有注册表(私有镜像仓库),其中存储了所有 必要的镜像以加快下载。在 RHEL 环境中,注册表为 docker- registry.service
容器:container 是隔离的 namespace 环境,应用与共享同一 主机操作系统的其他应用相互隔离
容器和 Linux 内核:
容器由 Docker 从 Docker 格式的容器镜像创建,通过 Linux 内 核的若干功能相互隔离。其中包括:namespace:内核可将对所有进程可见的系统资源放在一个命名 空间中。在一个命名空间中,只有属于该命名空间的进程才能看 到这些资源。命名空间中的资源包括网络接口、进程 ID 列表、挂 载点、IPC 资源,以及系统本身的主机名称等cgroups:将进程和子进程的集合分入不同的组中,以管理和限 制它们消耗的资源。cgroup 对容器可以使用的系统资源加以限 制,防止一个容器占用主机上太多资源
SELinux:SELinux 是一种强制访问控制系统,防止容器互相影 响,同时防止主机受到容器的影响。容器进程作为受限 SELinux 类型运行,对主机系统资源具有有限的访问权限。此外,sVirt 利 用 SELinux 多类别安全 (MCS) 来防止容器互相影响。每个容器的 进程放入唯一的类别中,从而互相隔离
Docker 容器镜像:
Docker 中每个容器由一系列层(layer)组成,组成虚拟文件系 统。Docker 容器镜像具只读;添加的额外层会覆盖其内容,但不会更改。image 使用 UnionFS 文件系统
可以通过两种方式创建新镜像:
- 利用运行中的容器:使用镜像启动新的容器实例,在新层中对容器 进行更改。存储这一读写层将生成新的镜像。这是创建镜像的最简单 途径,但不是推荐的方法,因为镜像可能会因为临时文件和日志等不 必要的文件而变得非常大
- 使用 Dockerfile:可以通过一系列称为指令(command)的步骤从基础镜像构建容器镜像。每一指令在镜像上创建一个新层,以用于构建最终的容器镜像。这是构建镜像的建议方法。
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!
2022-11-21 10:36:22
2020-01-15 16:20:09
2020-03-05 17:46:42
2022-01-21 15:24:14
2020-04-27 18:55:39
2020-03-09 17:18:29
甄选10000+数字化产品 为您免费使用
申请试用
评论列表