基于Docker与SSM的响应式图书馆平台的开发与部署

2021-08-19 08:07王龙军
内蒙古科技与经济 2021年13期
关键词:镜像命令容器

王龙军

(成都工业学院,四川 成都 611730)

响应式图书馆平台开发大致分为前端开发和后端开发,前端开发主要采用Bootstrap技术,后端开发主要采用SSM框架技术,SSM框架包括Sping、Spring MVC、MyBatis3种框架。图书馆平台开发主要采用开源操作系统和开源开发技术,开发平台的搭建比较烦琐,开发出的软件部署也是一个难题,开发团队一般是3~5人,开发周期要由开发项目的大小决定,一般是3个月到2年。本项目是在CentOS Linux平台上进行开发,采用Docker快速搭建开发和运行环境,并且Docker搭建好的环境可以直接传递给项目成员,这样就解决了开发团队成员多次搭建开发环境、开发环境不一样等问题,利用Docker自动对开发的软件进行打包和部署应用,这样做的好处是可以把图书馆平台轻松进行迁移和扩展,实现了一处构建、到处运行的目的。

1 相关技术简介

1.1 Docker介绍

Docker[1-2]是一个在Linux容器里运行应用的和基于C/S架构的容器引擎工具,Docker是一种轻量级的虚拟机,Docker是采用Go语言开发的开源容器项目,实现“Build,Ship and Run Any App,Anywhere”就是Docker设计目的,即通过对所开发应用的生命周期的封装、发布、部署、运行等过程进行管理,这样“一次封装、到处运行”的理念就可以在应用组件中实现。Docker是一种轻量级的虚拟化容器技术,和传统的虚拟机方式比较,Docker容器启动和停止很快,一般是秒级,而传统的虚拟机一般是分钟级别,Docker就是将应用及其依赖打包成一个沙盒执行环境,Docker每个应用相互隔离,可以将应用发布到任何流行的Linux或Windows服务器上。

Docker实现开发和运维一体化,通过Docker可以快速实现搭建好开发和运行环境,并且该环境可以直接传递给测试和运维人员,这样他们可以使用完全相同的环境来测试和部署代码,这是多少开发团队梦寐以求的事情,这会节省大量的开发、测试、部署时间。Docker容器可以在服务器、云平台、虚拟机等运行,支持Linux、Windows、Mac OS等操作系统,这样Docker可以在不同的平台和操作系统上进行轻松迁移,Docker容器对系统资源需求很少,这样一台服务器上可以同时从上千到上万个Docker容器,这在传统的虚拟机上是不可想象的。

1.2 SSM框架介绍

SSM框架指Spring+Spring MVC+MyBatis 3种框架组合,SSM是当前主流的企业级开发Web应用框架组合。Spring[3]框架的核心是“控制反转(IoC)和面向切面编程(AOP)”,Spring将面向接口的编程理念贯穿于整个Spring系统之中,Spring要解决的是业务逻辑层与其他业务层的松耦合问题,同时Spring也是SSM框架组合的核心,Spring在表现层、业务层、持久层整合各个框架,Spring负责创建和管理对象之间的依赖关系。

MyBatis是Java EE应用开发的一个轻量级数据持久层(ORM)框架,Hibernate是一个全表映射的框架,而MyBatis是一个半自动映射的框架,Hibernate将Java对象与数据库中数据表关联起来,而MyBatis没有实现Java对象和数据库中数据表关联起来,MyBatis是将Java方法与SQL语句进行关联,通过XML或注解进行配置和映射,MyBatis将基本数据类型、POJO、MAP接口映射到数据库中数据记录中。

1.3 Bootstrap介绍

Bootstrap[5]是Twitter公司开发的一个基于HTML5、CSS3和JavaScript的响应式Web前端开发框架,Bootstrap于2011年8月在GitHub上以开源的形式进行发布,Bootstrap发布后收到前端开发者的热捧,一直是GitHub上的热门开源项目。Bootstrap 3版本以后框架包含了贯穿于整个库的移动设备优先的样式,Bootstrap 响应式布局设计,让一个Web应用可以兼容不同分辨率的设备,比如PC电脑、平板电脑、手机等,响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,Bootstrap就是响应式布局最成功的实现,为了兼容不同的浏览器采用jQuery,为了适配不同的终端采用CSS3 Media Query(媒体查询)。

2 Docker与SSM在响应式图书馆平台的环境搭建和项目部署

2.1 Docker与SSM在响应式图书馆平台的环境搭建和项目部署总体框架

响应式图书馆平台的环境搭建和项目总体框架分为两部分:Docker环境搭建和Docker软件部署,Docker环境搭建主要是利用Docker安装JDK、Tomcat等一系列软件,从而建立图书馆平台的开发环境;Docker软件部署主要是利用Docker将SSM开发的响应式图书馆平台软件部署到服务器上,这样用户就可以访问图书馆平台。响应式图书馆平台环境搭建和软件部署总体结构如图1所示。

图1 响应式图书馆平台环境搭建和软件部署总体结构

2.2 Docker与SSM在响应式图书馆平台的环境搭建

Docker环境搭建主要是利用Docker建立图书馆平台的开发环境,包括使用Docker安装JDK、Tomcat、Nginx、MongoDB、Eclipse等软件,然后使用Eclipse建立Java EE项目,添加Sping、Spring MVC、MyBatis 3种框架所需要的JAR包以及3种框架整合需要的JAR包,这样就可以就搭建好整个项目的开发环境。

本平台是在CentOS 7.2 Linux上进行开发,开发所用到的软件全部是开源软件,主要是为了避免使用商业软件导致版权纠纷的问题。首先是在CentOS上安装Docker软件,Docker要求CentOS 7及以后的版本,并且必须是64位的Linux系统,Linux内核至少是3.10版。安装的时候以超级管理员root身份安装Docker,使用命令yum install docker安装软件,然后使用命令systemctl start docker启动Docker服务,若要开机时自动引导Docker服务,使用命令systemctl enable docker,这样就完成了Docker软件的安装和启动。

Docker利用容器安装软件,一般分为两步,第一步是去仓库拉取所需要的镜像,第二步是创建容器并运行,接下来本文重点以Docker安装JDK、Tomcat、MongoDB为例进行讲解,其他软件的安装如此类推,这里我们选择直接使用命令的方式进行,没有选择使用Dockfile的方式创建镜像。

焊膏印刷机常被用作印刷焊膏或贴片胶,其功能主要是将贴片胶或焊膏准确无误的漏印到对应印制板的位置。影响焊膏印刷质量的因素非常多,最关键的要属焊膏特性、印刷工艺参数设置和网版制作。

2.2.1 Docker安装JDK。

笔者采用直接在Docker拉取镜像,而不是通过下载JDK安装包的形式,用超级管理员的身份登录CentOS系统。

第一步 拉取镜像,命令为#docker pull openjdk,查看镜像#docker images。

第二步 创建容器,并运行容器,命令为#docker run -t -i openjdk /bin/bash。

第三步 测试JDK是否安装成功,命令为#java -version。

2.2.2 Docker安装Tomcat。

第一步 拉取镜像,命令为#docker pull tomcat,查看镜像#docker images。

第二步 创建容器,并运行容器,命令为#docker run -d -p 8080:8080 tomcat。

第三步 测试Tomcat是否安装成功,打开浏览器输入http://localhost:8080,如果看到Tomcat的主页,证明Tomcat服务器成功启动。

2.2.3 Docker安装MongoDB。

第一步 拉取镜像,命令为#docker pull mongo,查看镜像#docker images。

第二步 创建容器,并运行容器,命令为#docker run -itd --name mongo -p 27017:27017 mongo --auth。

第三步 测试MongoDB是否安装成功,命令为#docker ps,查看运行的容器中是否有MongoDB容器。

第四步 为MongoDB数据库添加用户和设置密码,先添加用户,命令为#docker exec -it mongo mongo admin,再设置密码,命令为>db.createUser({ user:′admin′,pwd:′admin′,roles:[ { role:′userAdminAnyDatabase′, db:′admin′},"readWriteAnyDatabase"]}),接下来就是用创建的用户名和密码来连接MongoDB,命令为>db.auth(′admin′,′admin′)。

2.3 Docker与SSM在响应式图书馆平台的部署

响应式图书馆平台软件要发布到服务器上,这时服务器同样存在需要搭建SSM的运行环境,比如需要JDK、Tomcat、Nginx等软件,这时完全可以利用Docker把本机的开发软件镜像保存为本地文件,然后利用SSH软件将文件上传到服务器上,服务器将上传的文件载入为镜像文件,然后在Docker容器中启动即可完成服务器运行环境的搭建工作。

服务器事先要安装好CentOS 7.2,以JDK为例说明整个一个过程,步骤如下:

首先,使用命令yum install docker安装软件,然后使用命令systemctl start docker启动Docker服务。

其次,保存本机JDK镜像为本地文件,文件后缀名为.tar,命令为docker save -o java8.tar?java/java-8,将产生java8.tar文件。

然后,利用WinSCP软件将java8.tar文件上传到CentOS服务器上。

最后,从文件载入镜像,命令为docker load < java8.tar,这样就可以在服务器上得到JDK的镜像,然后创建容器,把JDK镜像载入并运行,命令为#docker run -t -i openjdk /bin/bash,这样就搭建好Java运行环境,其他软件环境搭建过程类似,就不再一一赘述。

在服务器上搭建好整个软件环境后,我们还需要采用Eclipse将SSM项目导出为war包,将该war包上传到服务器的tomcat的webapps目录下,然后服务器利用Docker启动所有的容器,这样就完成了整个软件的部署工作。

3 结束语

在CentOS Linux平台下利用Docker容器化技术快速安装JDK、Tomcat、Nginx、MongoDB、Eclipse等软件,建立Java EE项目,添加Sping、Spring MVC、MyBatis 3种框架所需要的JAR包以及3种框架整合需要的JAR包,这样就可以就搭建好开发环境,并且可以把这样的开发环境直接传递给团队成员,软件开发好以后再利用Docker进行快速部署,以及开发出响应式图书馆平台软件后利用Docker进行测试、自动打包及快速部署,Docker缩短代码从开发、测试到部署、上线运行的周期,让你的应用程序具备可移植性,易于构建,并易于协作,总之Docker能为SSM开发带来很大便利。

猜你喜欢
镜像命令容器
只听主人的命令
镜像
安装和启动Docker
难以置信的事情
镜像
移防命令下达后
解析Windows10的内部命令
液体对容器底及容器对桌面的压力和压强
取米
镜像