您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
容器 - DevOps 开发运维训练营
 
作者:Marlon.Kang
  1290  次浏览      14
 2021-1-4
 
编辑推荐:
文章主要介绍了Docker 容器概述及虚拟机和容器之间的差别。希望对您的学习有所帮助。
本文来自于博客园,由火龙果软件Linda编辑推荐。

迄今为止,我们已经了解了 DevOps 实践和持续集成。但是,最近,容器成为了一个流行词,每个人都希望有第一手的经验,主要原因是为了高效地利用资源。Docker 是用于操作系统虚拟化的一个开源产品,可以自动化应用程序在软件容器中的部署。在 Dev 或者 QA 环境中,运用容器以得到更高的资源利用率,是极其实用的。

在本章中,我们将尝试安装和创建一个样板容器,目标是熟悉 Docker 容器,对容器在应用部署中的用途有所感觉。

本章提供容器的简单概述。我们将聚焦于如下主题:

Docker 容器概述;

理解虚拟机和容器之间的差别;

Docker 的安装与配置;

创建一个 Tomcat 容器。

Docker 容器概述

Docker 提供隔离的用户控件,从而提供基于用户的进程、控件和文件系统。在后台,Docker 共享 Linux 主机内核。图 3-1 说明了 Docker 容器的工作机制:

图 3-1

Docker 有两个主要组件,采用客户端—服务器架构:

Docker Host。

Docker Hub。

下面我们更详细地了解一下它们。

Docker Host:Docker Host 包含 Docker 守护进程、容器和映像。Docker 引擎是提供 Docker 核心技术的重要组件。这种核心技术实现了映像和容器。当我们成功安装 Docker,可以运行一条简单的命令。我们将考虑使用 CentOS 作为容器。使用 docker 命令 run -i -t <image> /bin/bash,在 CentOS 映像中运行交互式命令行解释器:

-i 标志启动交互式容器。

-t 标志创建一个连接到 stdin 和 stdout 的伪终端。

image 是一个 CentOS 映像。

/bin/bash 启动命令行解释器。

运行这个命令时,系统将验证本地有无可用的 CentOS 映像。如果不可用,将从 Docker Hub 下载映像。

映像具有一个文件系统和可在运行时使用的参数,而容器是映像的一个有状态实例。很容易理解,容器是变化的,而映像是不变的。

Docker Hub:Docker Hub 是一个用于 Docker 容器共享和管理的软件即服务(SaaS)产品,是由 Docker 提供的集中注册表服务。作为用户,我们可以用它构建和交付应用程序。这使我们可以创建一个流水线,集成代码存储库,进行协作、映像发现和自动化。

理解虚拟机和容器之间的差别

在我们开始 Docker 安装和容器创建之前,理解容器的不同之处以及与虚拟机的差异是很有帮助的。

我们先来了解一下虚拟机和容器的根本差别。

虚拟机

在虚拟机(VM)中,我们必须安装一个操作系统和相关的设备驱动程序;因此虚拟机的空间占用或者规模是巨大的。安装 Tomcat 和 Java 的常规 VM 可能占据多达 10GB 的硬盘空间,如图 3-2 所示。

图 3-2

内存管理和设备驱动程序有一定的开销。虚拟机具备常规物理机器运营所需的所有组件。

在虚拟机中,虚拟化管理器(Hypervisor)抽象资源。它不仅包含应用程序,还有必要的二进制文件和程序库,以及整个客户操作系统,如 CentOS 6.7 和 Windows 2003。

云服务提供商使用虚拟化管理器为 VM 提供标准运行时环境。Hypervisors 分为 1 类和 2 类。

容器

容器共享主机的操作系统和设备驱动程序,并从映像中创建,安装了 Tomcat 的容器尺寸小于 500MB,如图 3-3 所示。

图 3-3

容器在规模上较小,因此能够有效地提供更快的速度和更好的性能。它们抽象操作系统。

容器作为相互隔离的用户空间运行。用户空间中的过程和文件系统在主操作系统上,与其他容器共享内核。容器最优秀的方面是共享和资源利用率,由于开销较小,可用资源也更多。容器工作所需的资源很少。

Docker 使不同环境之间的应用程序移植更高效、更简便。

在 CentOS 中安装 Docker 的细节可以阅读「DevOps for web development」:https://www.packtpub.com/networking-and-servers/devops-web-development。

 小结

我们在本章中学到了如何在 Windows 10 中安装 Docker 容器,如何使用 Docker Hub 寻找公共领域中可用的镜像。

我们执行了「你好,世界」容器,验证 Docker 是否已经成功安装。验证 Docker 安装之后,我们使用 Docker hub 获取 Tomcat 映像,成功创建了一个 Tomcat 8 容器,并通过浏览器访问。

我们还使用 Jenkins 在 Tomcat 容器中部署了应用程序,目标是利用 docker 容器进行应用部署。

在下一章中,我们将介绍如何利用配置管理工具 Chef 设置运行时环境,以便在虚拟机中部署基于 Java 的 Web 应用。

   
1290 次浏览       14
相关文章

DevOps转型融入到企业文化
DevOps 能力模型、演进及案例剖析
基于 DevOps 理念的私有 PaaS 平台实践
微软开发团队的DevOps实践启示
相关文档

DevOps驱动应用运维变革与创新
运维管理规划
如何实现企业应用部署自动化
运维自动化实践之路
相关课程

自动化运维工具(基于DevOps)
互联网运维与DevOps
MySQL性能优化及运维培训
IT系统运维管理
最新课程计划
信息架构建模(基于UML+EA)3-21[北京]
软件架构设计师 3-21[北京]
图数据库与知识图谱 3-25[北京]
业务架构设计 4-11[北京]
SysML和EA系统设计与建模 4-22[北京]
DoDAF规范、模型与实例 5-23[北京]
 
最新文章
DevOps 道法术器,立体化实施框架
DevOps 中高效测试基础架构的最佳实践
DevOps 在公司项目中的实践落地
如何基于 Kubernetes 构建完整的 DevOps 流水线
阿里云Kubernetes实战
最新课程
DevOps体系实践、工具与平台
基于Kubernetes的DevOps实践
互联网运维与DevOps
基于Kubernetes构建企业容器云
企业级DevOps工作体系与平台
更多...   
成功案例
北京 DevOps体系实践、工具与平台
神龙汽车 DevOps体系实践、工具与平台
中国移动通信 网络规划与管理
某航空公司 IT规划与企业架构
某金融公司 IT服务管理(ITIL V3)
更多...