基于Dockerfile构建Tomcat服务并搭建pb-cms

一、实训内容

在 Linux 虚拟机中,安装好 Docker,搭建私有仓库,利用 Dockerfile 构 建 JavaWeb 应用程序部署所需的镜像,推送到私有仓库中,然后从另一台虚拟 机拉取所需镜像后创建容器运行,最后在浏览器中打开网页测试运行

1.首先准备好两个虚拟机,一个用来当服务器搭建私有仓库,另一个用来当客户机拉取镜像
tips:首先检查两台虚拟机的IP,能否Ping通外网以及互相Ping通
服务器.png
客户机.png
ping1.png2.png
两台机子均可以互相ping通,且能ping通外网,虚拟机设置为NAT模式,防止切换网络导致的IP变动
服务器IP:192.168.150.128
客户机IP:192.168.150.141


二、搭建私有仓库

.接下来给服务器搭建Dokcer私有仓库,具体步骤如下
首先从Dokcer Hub中拉取仓库镜像
拉取镜像.png
运行仓库镜像并映射到5000端口供客户机访问, --restart=always 表示容器停止时自动重启
333.png


三.利用Dockerfile 搭建Tomcat服务,并构建测试页面

目录结构:/home/mydockerfile/mytomcatimages
具体包含内容如下:
最终目录结构如下.png

FROM centos:7
MAINTAINER ffctf<ffctf@163.com>

COPY readme.txt /usr/local/readme.txt

ADD jdk-8u11-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.22.tar.gz /usr/local

RUN yum -y install vim

ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH #JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22
ENV CATALINE_BASH /usr/local/apache-tomcat-9.0.22
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out

(2)构建tomcat镜像
:::info
docker build -t tomcat .
:::
构建.png
(2)启动镜像

docker run -d -p 9090:8080 --name mytomcat01 -v /home/mydockerfile/mytomcatimages/build/test/:/usr/local/apache-tomcat-9.0.22/webapps/test -v /home/mydockerfile/mytomcatimages/build/logs/:/usr/local/apache-tomcat-9.0.22/logs tomcat

运行.png
(3)构建测试页面
在宿主机挂载的test目录创建一个web-inf目录
进入WEB-INF目录,然后创建一个web.xml文件,在其中写入下面这些代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">
</web-app>

然后退出WEB-INF目录,创建一个index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello, moon</title>
</head>
<body>
Hello World!<br/>
<%
System.out.println("----my test web logs----");
%>
</body>
</html>

构建测试页面.png

运行结果如下:
test.png

四.搭建mysql服务

(1)拉取mysql镜像

docker pull mysql:5.7.33

(2)制作mysql容器

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.33

(3)用猫猫连接数据库,并导入sql文件
猫猫.png

五.利用Tomcat部署war包

(1)进入容器内部

docker exec -it f56caccccd3b bash

容器内部.png
(2)利用映射的test目录把pb-cms.war移动到webapps目录下
移动.png
(3)修改pb-cms.war包内数据库配置IP为192.168.150.128
123.png
(4)访问pb-cms
访问成功.png

六.把打包好的Mysql镜像推送到服务器上,并利用另一台客户机下载

(1)将正在运行的容器打包成镜像

docker commit -a “ffctf” -m “my mysql” 450379344707 mysql-top

(2)要推送到私有仓库一定要重命名

docker tag mysql-top:latest 192.168.150.128:5000/mysql

(3)推送镜像

docker push 192.168.150.128:5000/mysql

(4)利用客户机拉取镜像

docker pull 192.168.150.128:5000/mysql

(5)运行镜像

docker run -d -p 3306:3306 --name mysql 192.168.150.128/mysql

七.把打包好的tomcat镜像推送到服务器上,并利用另一台客户机下载

(1)将正在运行的容器打包成镜像

docker commit -a “ffctf” -m “my tomcat” f56caccccd3b tomcat-top

33.png
(2)要推送到私有仓库一定要重命名

docker tag tomcat-top:latest 192.168.150.128:5000/tomcat

重命名.png
(3)推送镜像

docker push 192.168.150.128:5000/tomcat

推送镜像.png

(4)利用客户机拉取镜像

docker pull 192.168.150.128:5000/tomcat

11111111111111111111.png
(5)运行镜像

docker run -d -p 9090:8080 --name tomcat 192.168.150.128/tomcat

运行成功.png
(6)用另一条主机访问客户机的搭建的tomcat服务 ,如下图,访问成功
访问结果.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值