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
测试访问:
如果报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 test
➜ cd test
➜ mkdir 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