图书管理系统是大学计算机课程中常见的课程设计作业。本系列将使用在Windows7中创建虚拟机的方式,逐步构建一个图书管理系统。
本文主要面向初学者及对linux Web服务感到好奇的同学。
话不多说,咱们这就开始。
首先,需要一个linux环境,有条件的同学可以租用各平台的虚拟主机作为服务器,我这里直接在windows环境中安装Ubuntu的虚拟机,虚拟机工具可选择VMware/VM VirtureBox等都可以,如果是windows 10系统的话也可直接使用内置虚拟机。
在虚拟机软件中创建一个虚拟机,选择合适的cpu、内存、磁盘分配,为了后续方便从宿主机及局域网其他机器访问到虚拟机中的服务,我们选择NAT的网络连接方式
接下来虚拟机中安装linux操作系统。这里选择ubuntu 16.04 LTS,使用镜像文件进行安装。
安装完成后,我们就可以开始在ubuntu的环境内构建我们的图书管理系统。
先准备基本的依赖组件,我们选用docker容器模拟多个服务器,虚拟化部署一些开源工具和将来要开发的自研组件。
这里有必要简单的介绍一下docker。docker是一个开源的应用容器引擎,允许将应用虚拟化部署在一个轻量级,可移植的容器中。更多的介绍这里不展开说,有兴趣的同学可以自己查找学习。
安装docker-compose
# 先移除apt可能存在的旧版本
sudo apt-get remove docker docker-engine docker-ce docker.io
# 更新一下apt
sudo apt-get update
# 安装docker-ce
sudo apt-get install -y docker-ce
# 启动docker
sudo systemctl start docker
# 下载docker-compose
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 赋予文件可执行权限
chmod +x /usr/local/bin/docker-compose
一个简单的图书管理系统应该具备以下几个功能:
1.图书信息管理
2.借阅者管理
3.图书借阅和归还操作
按以上基础的功能设计,选用mysql作为数据库存储,使用Java语言SpringBoot框架开发一个web服务提供管理页面。
使用docker-compose启动mysql和portainer(protainer是一个docker容器管理服务,可供我们方便的管理容器)
在自己的工作目录下新建一个名为docker-compose.yml的文件,文本方式打开,贴入以下配置信息
version: '2'
services:
portainer:
image: portainer/portainer
container_name: portainer
ports:
- "8000:8000"
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
restart: always
mysql:
environment:
MYSQL_ROOT_PASSWORD: "111111"
MYSQL_USER: 'root'
MYSQL_PASS: '111111'
image: "docker.io/mysql:latest"
container_name: mysql
ports:
- "3306:3306"
restart: always
volumes:
- "./db:/var/lib/mysql"
- "./conf/my.cnf:/etc/my.cnf"
- "./init:/docker-entrypoint-initdb.d/"
volumes:
portainer_data:
以上配置定义了一个portainer镜像和一个mysql镜像。接下来在此目录下执行sudo docker-compose up。接下来可以等待镜像的下载和自动启动
之前选择了NAT的网络连接方式,我们在宿主机查看本机ip地址,windows电脑选择运行->cmd,打开命令行工具,使用ip config 命令查看本机局域网ip为192.168.1.7
接下来,需要在虚拟机软件中设置一下端口转发规则,就可以在宿主机上访问刚才docker内启动的服务了。portainer的web服务端口在9000,我们设定9000端口的转发规则如下
现在在宿主机的浏览器中访问192.168.1.7:9000,可以进入portainer服务了,首次进入会要求设定账号密码,按引导创建后,可以看到虚拟机内docker容器的运行状态
选择local,进入containers这项,可以看到我们刚才用docker-compose启动的mysql和portainer两个容器
现在有了容器管理工具和mysql,我们需要一个新的容器来部署图书管理系统的web服务。直接在portainer上创建即可
选择Add container,容器的名字起一个可辨识的,选择centos:7镜像,为了后续可能开放的web服务,多开放几个端口,我们开放8901~8905端口
在command && logging项中选择Interactive & TTY(以交互模式运行容器),以保证容器启动后可持续运行并登入
在restart policy选项中选择always,保证虚拟机启动后容器可自动启动
设置好后,点击deploy the container发布容器
现在可以在portainer的管理页面看到刚才创建的容器了,我们登入容器中检查一下mysql服务的运行状态
选择刚才启动的容器,点击 _ Console 后选择 Connect
这样我们就通过portainer的终端工具访问了这个容器
安装一个mysql client
yum install mysql-community-client
从centos_7_logic_1访问mysql服务
mysql -h*.*.*.* -P3306 -uroot -p
注意mysql服务没有在宿主机内开放端口,它作为一个内网服务,所以这里-h后面跟的ip地址应该是Ubuntu虚拟机的ip地址。
mysql服务成功访问到了,准备工作基本完成。下一篇我们将使用Java编写代码建立图书后台管理系统。
原创文章,转载请注明出处