Docker实战,手动构建tomcat7,并部署项目

文章目录

  • Docker实战,手动构建tomcat7
    • centos基础镜像
    • 准备jdk7和tomcat7
    • 构建tomcat镜像
      • Dockerfile编写
      • build镜像
      • run容器
      • 删除容器:
      • 删除镜像:
      • 重新打包镜像并运行容器
      • 进入容器
      • 测试tomcat
    • 部署项目
    • 相关学习
      • JAVA资深架构师成长路线->分布式扩展到微服务架构>Docker

Docker实战,手动构建tomcat7

项目要使用Docker进行部署,因为这是一个老项目,要使用jdk7和tomcat7的环境才能运行,然而公司给服务对象是一国企,开发环境只有内网,又没有相关的基础镜像,于是只能自己动手下载基础镜像,然后构建合适版本的tomcat镜像了

centos基础镜像

从外网中下载 centos:latest 镜像

docker pull centos:latest

然后将镜像保存为压缩文件

docker save -o centos.tar centos:latest

将 centos.tar 上传到工作内网服器务上
Docker实战,手动构建tomcat7,并部署项目_第1张图片
将centos.tar文件加载到docker中

docker load -i centos.tar

然后用docker images 查看
Docker实战,手动构建tomcat7,并部署项目_第2张图片

运行一容器,测试centos镜像是否正常

docker run -it --rm centos:latest /bin/bash
#-i 以交互模式运行容器
#-t 分配一个伪终端
# --rm 这个参数是说容器退出后随之将其删除。

在这里插入图片描述
测试成功

准备jdk7和tomcat7

下载 jdk7 下载地址

下载 tomcat7 下载地址

在这里插入图片描述
将下载的jdk和tomcat上传到服务器
放到 /home/dockerhome/tomcat7 目录下
在这里插入图片描述

构建tomcat镜像

创建Dockerfile并编码

cd /home/dockerhome/tomcat7
vim Dockerfile

Dockerfile编写

/home/dockerhome/tomcat7
#构建tomcat镜像

#以 centos 为基础镜像
FROM        centos:latest
#作者信息
MAINTAINER   [email protected]
 
#把java添加到容器中
ADD jdk-7u80-linux-x64.tar.gz  /usr/local

#把 tomcat 添加到容器中
ADD apache-tomcat-7.0.61.tar.gz /usr/local

#配置 java 环境变量
ENV JAVA_HOME /usr/local/jdk1.7.0_80
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#配置 tomcat 环境变量
ENV CATALTNA_HOME /usr/local/apache-tomcat-7.0.61

ENV PATH $PATH:$JAVA_HOME/bin

#设置工作目录

WORKDIR $CATALTNA_HOME

#容器端口
EXPOSE 8080

ENTRYPOINT ["catalina.sh","run"]

build镜像

docker build -t regnode.hzsh:5000/tomcat/tomcat:v7.0.61 .

run容器

docker run -d --name tomcat7061 -p 10039:8080 regnode.hzsh:5000/tomcat/tomcat:v7.0.61

启动容器时,出现以下错误

提示:/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused “exec: “catalina.sh”: executable file not found in $PATH”.

原因CATALTNA_HOME环境变量未加入到PATH

ENV PATH $PATH:$JAVA_HOME/bin

PATH修改后,Dockerfile为:

#构建tomcat镜像

#以 centos 为基础镜像
FROM        centos:latest
#作者信息
MAINTAINER   [email protected]
 
#把java添加到容器中
ADD jdk-7u80-linux-x64.tar.gz  /usr/local

#把 tomcat 添加到容器中
ADD apache-tomcat-7.0.61.tar.gz /usr/local

#配置 java 环境变量
ENV JAVA_HOME /usr/local/jdk1.7.0_80
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#配置 tomcat 环境变量
ENV CATALTNA_HOME /usr/local/apache-tomcat-7.0.61

ENV PATH $PATH:$JAVA_HOME/bin:$CATALTNA_HOME/bin

#设置工作目录

WORKDIR $CATALTNA_HOME

#容器端口
EXPOSE 8080

ENTRYPOINT ["catalina.sh","run"]

删除容器:

#删除容器
	docker container rm -f tomcat7061

删除镜像:

#删除镜像
	docker image rm regnode.hzsh:5000/tomcat/tomcat:v7.0.61

重新打包镜像并运行容器

docker build -t regnode.hzsh:5000/tomcat/tomcat:v7.0.61 .
docker run -d --name tomcat7061 -p 10039:8080 regnode.hzsh:5000/tomcat/tomcat:v7.0.61

启动成功:
在这里插入图片描述

进入容器

docker container exec -it tomcat7061 /bin/bash

测试tomcat

浏览器中输入地址:http://10.152.70.23:10039/
如图,测试成功:
Docker实战,手动构建tomcat7,并部署项目_第3张图片

部署项目

将项目打成war包并上传到服务器上
Docker实战,手动构建tomcat7,并部署项目_第4张图片
然后将项目war包复制到容器的tomcat工作目录中:

docker cp /home/dockerhome/hzlhkpi/hzlhkpi.war tomcat7061_10039:/usr/local/apache-tomcat-7.0.61/webapps

最后访问你的项目即可

http://10.152.70.23:10039/hzlhkpi

相关学习

JAVA资深架构师成长路线->分布式扩展到微服务架构>Docker

你可能感兴趣的:(web,Docker,运维,容器技术)