狂神视频参考地址
- tomcat压缩包
- jdk压缩包:因为tomcat是依赖于jdk的
- 首先准备好需要的文件(需要的话去阿帕奇官网下载)
[root@iZwz9hv1phm24s3jicy8x1Z dongmu]# ll
total 178964
-rw-r--r-- 1 root root 11560971 Apr 14 22:40 apache-tomcat-9.0.62.tar.gz
-rw-r--r-- 1 root root 183246769 Mar 2 13:48 jdk-8u121-linux-x64.tar.gz
- 编写Dockerfile文件,命名是
Dockerfile
,这样启动的时候会自动寻找这个文件。不需要-f自己指定了。
[root@iZwz9hv1phm24s3jicy8x1Z dongmu]# vim Dockerfile
FROM centos:7
MAINTAINER dongmu<2645990605@qq.com>
ADD jdk-8u121-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.62.tar.gz /usr/local
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_121
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.62
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.62
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.62/bin/startup.sh && tail -F /url/local/apache-tomcat-9.0.62/bin/logs/catalina.out
- 通过镜像文件构建镜像
docker build -t diy-tomcat .
:然后输出一大堆乱七八槽的,这里不展示了。
查看生成的镜像
[root@iZwz9hv1phm24s3jicy8x1Z dongmu]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
diy-tomcat latest aaebd8b23a95 2 minutes ago 811MB
centos-entrypoint latest 8dc6dc13f20a 48 minutes ago 204MB
cmdtest latest 529bc50c275f About an hour ago 204MB
tomcat02 1.0 558f9dd09adf 13 hours ago 684MB
tomcat latest fb5657adc892 3 months ago 680MB
redis latest 7614ae9453d1 3 months ago 113MB
mysql 5.7 c20987f18b13 3 months ago 448MB
centos 7 eeb6ee3f44bd 7 months ago 204MB
centos latest 5d0da3dc9764 7 months ago 231MB
- 启动镜像
[root@iZwz9hv1phm24s3jicy8x1Z dongmu]# docker run -d -p 3344:8080 --name dongmutomcat -v /home/dongmu/build/tomcat/test:/usr/local/apache-tomcat-9.0.62/webapps/test -v /home/dongmu/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.62/logs diy-tomcat
3a18b556257cfddd492549d72629393c4977acf1c17938c1b1d87ad8a5dcf369
进入这个容器
[root@iZwz9hv1phm24s3jicy8x1Z dongmu]# docker exec -it 3a18b556257c /bin/bash
[root@3a18b556257c local]#
查看容器的内容
[root@3a18b556257c local]# ls
aegis apache-tomcat-9.0.62 bin etc games include jdk1.8.0_121 lib lib64 libexec sbin share src
[root@3a18b556257c local]# cd apache-tomcat-9.0.62/
[root@3a18b556257c apache-tomcat-9.0.62]# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs temp webapps work
[root@3a18b556257c apache-tomcat-9.0.62]# ll
total 148
-rw-r----- 1 root root 18980 Mar 31 14:34 BUILDING.txt
-rw-r----- 1 root root 6210 Mar 31 14:34 CONTRIBUTING.md
-rw-r----- 1 root root 57092 Mar 31 14:34 LICENSE
-rw-r----- 1 root root 2333 Mar 31 14:34 NOTICE
-rw-r----- 1 root root 3378 Mar 31 14:34 README.md
-rw-r----- 1 root root 6898 Mar 31 14:34 RELEASE-NOTES
-rw-r----- 1 root root 16497 Mar 31 14:34 RUNNING.txt
drwxr-x--- 2 root root 4096 Mar 31 14:34 bin
drwx------ 1 root root 4096 Apr 14 15:34 conf
drwxr-x--- 2 root root 4096 Mar 31 14:34 lib
drwxr-xr-x 2 root root 4096 Apr 14 15:16 logs
drwxr-x--- 2 root root 4096 Mar 31 14:34 temp
drwxr-x--- 1 root root 4096 Apr 14 15:34 webapps
drwxr-x--- 1 root root 4096 Apr 14 15:34 work
[root@3a18b556257c apache-tomcat-9.0.62]# cd weba
bash: cd: weba: No such file or directory
[root@3a18b556257c apache-tomcat-9.0.62]# cd webapps/
[root@3a18b556257c webapps]# ls
ROOT docs examples host-manager manager test
- 外网访问
- 容器外通过挂载的问文件发布项目
[root@iZwz9hv1phm24s3jicy8x1Z dongmu]# ll
total 190264
-rw-r--r-- 1 root root 11560971 Apr 14 22:40 apache-tomcat-9.0.62.tar.gz
drwxr-xr-x 3 root root 4096 Apr 14 23:09 build
-rw-r--r-- 1 root root 603 Apr 14 23:27 Dockerfile
drwxr-xr-x 2 root root 4096 Apr 14 15:21 docker-test-volume
drwxr-xr-x 8 10 143 4096 Dec 13 2016 jdk1.8.0_121
-rw-r--r-- 1 root root 183246769 Mar 2 13:48 jdk-8u121-linux-x64.tar.gz
drwxr-xr-x 2 root root 4096 Apr 14 22:14 mydockerfile
[root@iZwz9hv1phm24s3jicy8x1Z build]# ll
total 4
drwxr-xr-x 4 root root 4096 Apr 14 23:09 tomcat
[root@iZwz9hv1phm24s3jicy8x1Z build]# cd tomcat
[root@iZwz9hv1phm24s3jicy8x1Z tomcat]# ll
total 8
drwxr-xr-x 2 root root 4096 Apr 14 23:09 test
drwxr-xr-x 2 root root 4096 Apr 14 23:16 tomcatlogs
[root@iZwz9hv1phm24s3jicy8x1Z tomcat]# cd test
[root@iZwz9hv1phm24s3jicy8x1Z test]# ls
[root@iZwz9hv1phm24s3jicy8x1Z test]# ll
total 0
创建WEB-INF文件夹,然后编写web.xml文件
[root@iZwz9hv1phm24s3jicy8x1Z test]# mkdir WEB-INF
[root@iZwz9hv1phm24s3jicy8x1Z test]# cd WEB-INF/
[root@iZwz9hv1phm24s3jicy8x1Z WEB-INF]# vim web.xml
[root@iZwz9hv1phm24s3jicy8x1Z WEB-INF]# cat web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
[root@iZwz9hv1phm24s3jicy8x1Z WEB-INF]# cd ..
[root@iZwz9hv1phm24s3jicy8x1Z test]# vim index.jsp
[root@iZwz9hv1phm24s3jicy8x1Z test]# cat index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello, dongmu,You will succeed oneday!</title>
</head>
<body>
Hello World!<br/>
hello, dongmu,You will succeed oneday!
<br/>
<%
System.out.println("-----donmu's test web logs------");
%>
</body>
</html>
- 通过外网访问(哈哈哈,成功了)
- 查看日志
[root@iZwz9hv1phm24s3jicy8x1Z test]# cd ..
[root@iZwz9hv1phm24s3jicy8x1Z tomcat]# cd tomcatlogs/
[root@iZwz9hv1phm24s3jicy8x1Z tomcatlogs]# ls
catalina.2022-04-14.log catalina.out host-manager.2022-04-14.log localhost.2022-04-14.log localhost_access_log.2022-04-14.txt manager.2022-04-14.log
[root@iZwz9hv1phm24s3jicy8x1Z tomcatlogs]# cat catalina.out
14-Apr-2022 15:16:27.129 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.62
14-Apr-2022 15:16:27.156 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Mar 31 2022 14:34:15 UTC
14-Apr-2022 15:16:27.156 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.62.0
14-Apr-2022 15:16:27.156 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
14-Apr-2022 15:16:27.156 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.10.60-9.al8.x86_64
14-Apr-2022 15:16:27.156 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
。。。。。。
14-Apr-2022 15:34:13.089 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-9.0.62/webapps/test]
14-Apr-2022 15:34:13.178 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/apache-tomcat-9.0.62/webapps/test] has finished in [89] ms
14-Apr-2022 15:34:13.184 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
14-Apr-2022 15:34:13.202 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1242] milliseconds
14-Apr-2022 15:46:23.393 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.reload Reloading context [/test]
14-Apr-2022 15:46:23.393 INFO [Catalina-utility-1] org.apache.catalina.core.StandardContext.reload Reloading Context with name [/test] has started
14-Apr-2022 15:46:23.445 INFO [Catalina-utility-1] org.apache.catalina.core.StandardContext.reload Reloading Context with name [/test] is completed
-----donmu's test web logs------
-----donmu's test web logs------
-----donmu's test web logs------
可以看到我们的日志输出了。
要掌握dockerfile的编写。