https://hub.docker.com/r/_/tomcat/
# run
docker run -d -p 8080:8080 --name tomcat --restart=always -v /data/file/logs/tomcat/latest:/usr/local/tomcat/logs -v /data/file:/data/file tomcat:latest
应用: basic -> 添加服务: tomcat
镜像: tomcat:latest or 34.domsn.com:5000/http:tomcat-20191101
卷:
/data/file:/data/file
/etc/localtime:/etc/localtime:ro
/data/site/tomcat/latest:/usr/local/tomcat/webapps
/data/file/logs/tomcat/latest:/usr/local/tomcat/logs
/data/docker/nginx/tomcat/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml:ro
/data/docker/nginx/tomcat/server.xml:/usr/local/tomcat/conf/server.xml:ro
说明:
java -version # 查看JDK版本
ps -ef|grep java # 查看Tomcat是否以关闭
cd bin && ./version.sh # 查看Tomcat版本
cd bin && ./shutdown.sh # 关闭
cd bin && ./startup.sh # 启动
1. nginx-代理访问
server {
listen 80;
server_name dubbo.daily.bydeal.com;
access_log off;
location / {
proxy_pass http://127.0.0.1:7001/bydeal-gateway/;
proxy_cookie_path /bydeal-gateway/;
}
}
2. tomcat
tomcat解压之后webapps目录下自带几个webapp:
* docs文档:这是一个静态页面集,不用启动tomcat也可以阅读
* examples样例
* hostmanager主机管理器
* manager应用管理器
* ROOT根目录:这个app可以访问以上四个app,这个app是默认的app,这个app十分简单,只有一些资源文件和一个jsp页面。
3. 安装完tomcat之后,在bin目录下启动startup.bat。在浏览器地址栏输入localhost:8080
4. 修改,添加端口号
tomcat默认端口号为8080,http服务的默认端口号为80。在浏览器地址栏输入ip或者域名之后,如果不输入端口号,默认就是80端口。修改tomcat目录下的conf/server.xml文件,service标签下的Connector可以有多个,再添加一个80端口的连接就可以了.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
5. 设置默认应用
添加Context标签并设置docBase,需要注意在java中路径分隔符一律按照'/'来总是正确的。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="" docBase="D:\apache\apache-tomcat-7.0.26\webapps\OnlineExam">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
</Host>
实际上,上面介绍的这种方法乃是下策,上策是把webapp的名称直接改为ROOT,tomcat默认ROOT目录是默认webapp.
reloadable="false"的作用为:
reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。
在开发阶段将reloadable属性设为true,有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发存阶段将reloadable设为false。
------------------------
vi /data/docker/nginx/tomcat/tomcat-users.xml
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="manager-status" />
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="ihunter" password="wdq54321" roles="manager-gui,manager-script,manager-status,tomcat,role1" />
-->
-------------------------
vi /data/docker/nginx/tomcat/server.xml
1)
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
2)
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false" deployOnStartup="false" reloadable="true">
<Context path="${context.path}" docBase="ROOT"/>
<Valve className="org.apache.catalina.valves.RemoteIpValve" internalProxies=".*"
protocolHeader="x-forwarded-proto"/>
</Host>