为了账号安全,请及时绑定邮箱和手机立即绑定

容器 - DevOps 开发运维训练营

标签:
CSS3

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

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

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

Docker 容器概述;

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

Docker 的安装与配置;

创建一个 Tomcat 容器。

Docker 容器概述

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

容器 - DevOps 开发运维训练营

图 3-1

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

Docker Host。

Docker Hub。

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

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

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

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

image 是一个 CentOS 映像。

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

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

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

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

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

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

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

虚拟机

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

容器 - DevOps 开发运维训练营

图 3-2

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

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

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

容器

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

容器 - DevOps 开发运维训练营

图 3-3

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

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

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

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

小结

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

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

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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消