当我们对基础镜像版本和tomcat版本有要求时,可以尝试自己集成所需的镜像,不必每次都去拉取其他人提供的镜像,然后在此基础镜像上部署自己的应用。
目标版本:
基础镜像版本:ubuntu:16.04
JDK版本:jdk1.8.0_191
tomcat版本:8.5.40
1、拉取基础镜像
docker pull ubuntu:16.04
默认会从docker官方维护的仓库拉取
2、准备安装包
下载所需版本的jdk和tomcat
当前下载的包为:
jdk-8u191-linux-x64.tar.gz
apache-tomcat-8.5.40.tar.gz
将压缩包放到指定的工作目录
3、在工作目录下编写Dockerfile
FROM ubuntu:16.04
WORKDIR /apple
ADD apache-tomcat-8.5.40.tar.gz /usr/local/
ADD jdk-8u191-linux-x64.tar.gz /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.8.0_191
ENV PATH=$JAVA_HOME/bin:$PATH JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
CMD ["sh","-c","/usr/local/apache-tomcat-8.5.40/bin/startup.sh && cat /dev/stdout"]
注意:CMD这一层可以去掉,我加上这层仅仅是为了测试tomcat能否正常启动。配置jdk环境变量时,注意路径,确保都能每行都能取到正确的路径。
4、构建
docker build . -t tomcat:1.2
镜像名称可以自己定义成更有辨识度的名字。
5、测试
docker run -ti -p 8085:8080 tomcat:1.2
可以访问宿主机的映射端口,查看是否可以打开tomcat欢迎页。
若不能打开,可尝试按照以下步骤检查:
步骤1:在宿主机上查看容器是否拉起,执行
docker ps
若容器状态为exit,则重新拉起容器测试。
步骤2:若容器在运行,进入容器查看
执行
docker exec -ti 容器ID /bin/bash
此时进入容器,
查看tomcat是否启动成功,ps -ef | grep java
查看tomcat的启动日志
输入java -version命令查看当前jdk是否安装成功,
输入env命令查看当前环境变量是否配置成功,
查看/usr/local文件夹下是否有解压后的文件