引言
在 Dokcer学习一 已经可以简单的安装一个Docker 容器并暴露某个端口给外部使用了。
安装不是目的, 应用才是王道。 发布一个快速部署的Web容器才是Docker的用处。
当前有需求:
Tomcat启动在Docker容器中,它需要告知注册中心自己暴露对外的Host以及Port。
传统的方式只可以获取到Tomcat启动时绑定的端口, 需要获取Docker对外映射的宿主机的Host以及开放的端口。
环境部署
应用程序目录:/opt
安装JDK.
# wget http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz
# ls
jdk-8u91-linux-x64.tar.gz
# tar -xzvf jdk-8u91-linux-x64.tar.gz
# jdk1.8.0_91/bin/java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
安装Tomcat
# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.0/bin/apache-tomcat-8.5.0.tar.gz
# tar -xzvf apache-tomcat-8.5.0.tar.gz
# apache-tomcat-8.5.0/bin/startup.sh
Using CATALINA_BASE: /opt/apache-tomcat-8.5.0
Using CATALINA_HOME: /opt/apache-tomcat-8.5.0
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5.0/temp
Using JRE_HOME: /opt/jdk1.8.0_91
Using CLASSPATH: /opt/apache-tomcat-8.5.0/bin/bootstrap.jar:/opt/apache-tomcat-8.5.0/bin/tomcat-juli.jar
Tomcat started.
# curl -I -s 127.0.0.1:8080
HTTP/1.1 200
将程序委托给Supervisord管理
# echo '#! /bin/bash
export JAVA_HOME=/opt/jdk1.8.0_91
export CLASSPATH=.:$JAVA_HOME:/lib:$JAVA_HOME/jre/lib:
export PATH=$PATH:$JAVA_HOME/bin
/opt/apache-tomcat-8.5.0/bin/startup.sh' > /etc/supervisor/conf.d/tomcat.sh
# echo '[supervisord]
nodaemon=true
[program:tomcat]
command=/etc/supervisor/conf.d/tomcat.sh' > /etc/supervisor/conf.d/tomcat.conf
当然, 每次变更一定要记住提交。
# docker commit acf27ff06413 tomcat
此时就可以开始访问Tomcat服务了。
# docker run -it -d -p 22 -p 8080 tomcat /usr/bin/supervisord
# docker ps -a
IMAGE STATUS PORTS
tomcat Up 6 seconds 0.0.0.0:32774->22/tcp, 0.0.0.0:32773->8080/tcp
# curl -I 127.0.0.1:32773
HTTP/1.1 200
将Docker镜像导出以便于本地使用
# docker export d3219e60d2b2 > docker_tomcat.tar
# gzip docker_tomcat.tar
# docker start d3219e60d2b2
# docker ps -a
CONTAINER ID COMMAND PORTS
d3219e60d2b2 "/usr/bin/supervisord" 0.0.0.0:32776->22/tcp, 0.0.0.0:32775->8080/tcp
# docker cp docker_tomcat.tar.gz 63730c15f13e:/opt/apache-tomcat-8.5.0/webapps/ROOT/docker_tomcat.html
# wget -b -c 公网ip:32775/docker_tomcat.html > docker_tomcat.tar.gz
此处分享:
服务器选购需谨慎。 上方下载共计耗时12小时。 选择更适合自己的方式很重要。
Web部署
源码展示 (非必须)
UnmodifiedSet.java
import java.util.Collection;
import java.util.Iterator;
import j