APP下载

云主机上Docker的搭建

2018-05-21宋佳

求知导刊 2018年4期
关键词:镜像虚拟化集群

宋佳

一、绪论

1.云技术及Docker的优势

云主机作为云计算的产物,凭借其服务低成本,高可靠,按需租用,易管理的优势可全面地满足中小型公司和企业对主机租用的需求。从一定程度上讲,云主机就是一种在一组集群物理节点上通过虚拟化技术而实现的虚拟主机,它作为按需租用的解决方案,可以在集群中大规模统一调度。普通用户完全可以像操作普通主机一样去进行操作。

云主机相对于传统物理主机,用户不需要提供硬件设备,降低了后期维护的成本。用户按需付费,并且可以进行自助操作,简单方便。用户不需要自行部署主机环境,需要做的只是按照需求申请特定类型的操作系统和环境,云主机的操作系统以及软件环境都由云主机平台进行维护和管理,在资源不足时,只需申请资源变更即可[1]。云主机更加安全可靠,云主机是基于集群技术实现的,节点间具有硬件冗余,可以增加可靠性。另外,云主机还有自动迁移的功能,如果集群中一台节点需要升级或者资源紧缺,该节点上的云主机可以迁移至其他资源宽裕的节点上,保证业务能够正常运行。随着应用场景的越来越复杂化,云主机系统也随之显现以下几个特点:

(1)环境多样。用户可以根据自身需求自助选择不同类型的系统环境,比如ubuntud、debian或者centos来应对各种复杂场景。另外,用户也可以使用云主机系统部署自动化集成和部署项目,提高项目开发、测试、运维的效率。

(2)资源可控。云主机系统可以实现对云主机的资源进行控制,比如限制CPU核数、内存大小、磁盘容量等。另外,存储模式也可以进行控制,通过云主机的资源控制可以达到优化系统性能的目的。

(3)高效可伸缩。云主机是一种在一组集群物理节点上通过虚拟化技术而实现的虚拟主机,能够尽可能地发挥集群的优势,使得集群资源得到充分利用,系统显得更加高效。

云计算提供的服务被划分成了三个层次,目前,按照这个经典的三层模型,众多计算机行业巨头已经建立了一批“重型”云平台,但是这种传统的云平台很难把握对其中的应用的管控。在这个时候,Docker的容器思想给所有人一个惊喜,Docker模糊了IaaS和PaaS间的明确的界限,为云计算的发展提供了新的方向[2]。基于官方的定义,Docker是世界领先的“软件集装箱”平台。开发人员使用Docker与同事协作开发;运营商使用Docker在独立容器中并行运行和管理应用程序,以获得更好的计算密度;企业使用Docker构建敏捷软件交付管道,以更快、更安全、更可靠地为Linux和Windows Server应用程序提供新功能。

2.云主机上Docker的搭建

目前大部分云主机的虚拟化采用传统的虚拟化技术,Docker 容器技术逐渐模糊了IaaS和PaaS间分明的间隔,其轻量级虚拟化的特性一步步地把传统的应用开发和运维机制变成了一种全新的方式。本人通过在linux服务器上通过docker实现多个系统环境的搭建与部署,进而提升用户对于云服务器的使用率,实现资源的最大利用。同时通过Docker关于镜像和容器的备份和恢复以及容器和镜像的创建,以达到开发环境和测试环境完全一致的目的地。

二、相关理论技术介绍

1.Docker技术

Docker 是一个开源的应用容器引擎,是一个基于操作系统虚拟化的开源引擎,遵从Apache2.0协议。Docker使用经典的C/S架构。让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Dokcer的守护程序主要负责运行和分发Docker容器。

2.Docker镜像及容器

如图1所示,Docker的镜像和容器采用的是分层结构存储,Docker的镜像中并不存在完整的linux的内核,里面包含的是Docker容器所需的文件系统结构。简言之,Docker 容器文件系统包括DockerFile、Docker镜像、Docker容器;DockerFile是软件的原材料,Docker镜像是软件的交付品,而Docker容器则可以认为是软件的运行态。从应用软件的角度来看,DockerFile、Docker镜像与Docker容器分别代表软件的三个不同阶段,DockerFile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。

三、基于云主机Docker的安装及调试

1.系统需求分析

在一台云虚拟主机上通过Docker虚拟多个系统应用环境,达到对虚拟机系统资源的最大利用。

2.服务器操作系统安装要求

一台云虚拟主机(系统版本Centos7.0)。

3.服务器软件列表

所有的应用软件都封装在DOCKER中(见表1)。

4.服务器配置

服务器建议配置如下(见表2)。

5.通过Docker满足生产测试一致

(1)首先,创建了新的网段,即docker-meta并分配了对应的ip地址,如下所示(见图2)。

这样一来,我们只讲我们生产环境部分的容器放在该网段中,并且该网段的容器可以进行相互访问。

(2)我们通过Docker将之前在实际情况下需要三台服务器进行安装的应用安装到对应到对应系统的Docker容器中(见图3)。

如图3中所示,我们将生产环境中的应用程序分别封装到了三个对应的容器,即7dfee9b4d44d、96878dae9eb9和dee8f23b43e3。对于三个应用所在的容器我们可理解为相当于三个在云服务器上虚拟出来的虚拟主机,类似于vmware上虚拟机,但是容器相对于vmware上的虚拟机来说是非常轻量级的。通过docker口令将容器需要访问的端口映射在服务器对应的端口,类似”0.0.0.0:3333->3333/tcp”这样的显示就是将容器7dfee9b4d44d的3333端口映射到服務器的3333端口,当服务器以为的用户需要访问容器7dfee9b4d44d中3333端口对应的应用时,只需要访问云服务器对应的地址下的3333端口就可以访问此应用。可以通过在云服务器上配置相应的白名单来决定允许哪些ip下的用户可以访问该应用。

(3)在云服务器上可以通过Docker口令备份Docker容器,再恢复出一个容器。我们可以将云服务器中生产环境下使用的容器备份到对应的文件(见图4)。

然后再在云服务器上设置不同于生产的网段和端口映射进行恢复。这样用于生产和测试的环境完全相同。这样开发和测试可以使用完全相同的环境进行测试,也节省了因为搭建服务器,或者系统版本不同导致测试结果而浪费的时间。

(4)在不同的服务器上进行容器恢复,将容器文件上传到安装有docker的服务器上,然后通过docker命令直接恢复文件备份前系统中运行的完全一致的容器。

四、总结及展望

本文通过对Docker官方文档的学习,在云服务器上实现了Docker创建生产环境下容器,以及Docker容器的网络配置;以及通过Docker实现容器的快速备份、迁移和还原操作,从而实现在生产和测试环境下应用程序和环境的一致性。后续将考虑使用Docker Swarm实现Docker集群配置。

参考文献:

[1]林 慰.传统IDC与云主机结合的前景[J].数字通信世界,2015(8).

[2]浙江大学SEL实验室.Docker容器与容器云[M].北京:人民邮电出版社,2015,28-80.

猜你喜欢

镜像虚拟化集群
镜像
镜像
勤快又呆萌的集群机器人
集群品牌是集群整体的品牌还是集群产品的品牌?
镜像
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
虚拟化整合之势凸显
虚拟化技术:绿色IT的希望