1. 创建镜像构建目录

cd /Users/cc/mnt
➜ mkdir tomcat
➜ pwd
/Users/cc/mnt/tomcat

2. 进入上述目录,创建Dockerfile、readme.txt文件、logs、webapps文件夹

vim Dockerfile

# vim Dockerfile
FROM centos

MAINTAINER caicai<649620749@qq.com>

# 把宿主机当前上下文的readme.txt拷贝到容器/usr/local/路径下
COPY readme.txt /usr/local/cincontainer.txt

# 把java和tomcat添加到容器中(会自动解压)
ADD jdk-8u201-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.24.tar.gz /usr/local/

# 安装vim编辑器
RUN yum -y install vim
# 设置启动访问的初始位置,即工作目录,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH

# 配置java和tomcat的环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_201
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINE_HOME /usr/local/apache-tomcat-9.0.24
ENV CATALINE_BASE /usr/local/apache-tomcat-9.0.24
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINE_HOME/lib:$CATALINE_HOME/bin

EXPOSE 8080
# 容器启动后要执行的命令
CMD /usr/local/apache-tomcat-9.0.24/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.24/bin/logs/catalina.out

3. 构建tomcat景象

docker build -f Dockerfile -t caicai/tomcat .

4. 查看构建后的镜像

docker images
REPOSITORY           TAG       IMAGE ID       CREATED          SIZE
caicai/tomcat        latest    354b6674c69d   19 seconds ago   669MB

5. 启动tomcat镜像

docker run -d --privileged=true -p 8080:8080 --name tomcat -v /Users/cc/mnt/tomcat/webapps:/usr/local/apache-tomcat-9.0.24/webapps -v /Users/cc/mnt/tomcat/logs/:/usr/local/apache-tomcat-9.0.24/logs caicai/tomcat


➜ docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED          STATUS          PORTS                    NAMES
6abf9ff96d61   caicai/tomcat   "/bin/sh -c '/usr/lo…"   54 seconds ago   Up 53 seconds   0.0.0.0:8080->8080/tcp   tomcat

6. 查看ip,测试访问

ip: 为宿主句ip

测试访问:
使用Dockerfile构建自己的tomcat镜像_docker

如果报404 Not Found问题,可通过以下方法解决。
一. webapps.dist 存在的解决办法 (大部分为此种情况)

# 进入容器docker exec -it tomcat /bin/bash
➜ cd apache-tomcat-9.0.24/
➜ rm -rf webapps
➜ mv webapps.dist webapps

二. webapps.dist 不存在的解决办法 (极少数此种情况)
如果没有webapp.dist,可以从网上找一个或者点击小编提供的链接下载
[阿里云盘] 提取码: sg22
下载完最后,将webapps目录拷贝到/Users/cc/mnt/tomcat(根据自己的路径拷贝),然后访问ip:8080 端口即可出现上图界面,这一步页面出不出现问题都不大,因为自己在空webapps目录下,新建项目,也是可以访问的(下步)。此方法,面向强迫症重度患者。

发布测试应用test

cd /Users/cc/mnt/tomcat/webapps
➜ mkdir testcd testmkdir WEB-INF
➜ cd WEB-INF
➜ vim web.xml
➜ cd ..vim index.jsp

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">
</web-app>

Index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
</head>
<body>
<br>
" welcome to my tocmat -- caixiaoxin "
<br>
</body>
</html>

测试访问: ip:8080/test/index.jsp
使用Dockerfile构建自己的tomcat镜像_linux_02