ApacheとTomcat7の連携メモ

Apache

前回
Docker centos6 jdk8 - tomoTaka’s blog
のcentos6,jdk8のdocker imageにさらにApacheをinstall.
ここ
Dockerコンテナを作成してApache2.2を動かす - Qiitaを参考にさせていただきました。

yum install http
sed -i -e 's/\#ServerName www.example.com:80/ServerName example-web-server.example.com/g' /etc/httpd/conf/httpd.conf
/etc/init.d/httpd configtest
/etc/init.d/httpd start  <-- service http startでいいのでは?
install 確認

f:id:tomoTaka:20160504081844p:plain

Docker ないでの起動確認

f:id:tomoTaka:20160504081708p:plain

ホストからの接続確認

f:id:tomoTaka:20160504092721p:plain
ホストから接続できない?(後で調べる、、、)

その後に、Dockerのプロセスを停止する方法をめも
docker ps -a  <--でコンテナ確認 この時点ではSTATUSにUPと表示
docker attach コンテナID またはコンテナ名
exit
docker ps -a  <--でコンテナ確認 この時点ではSTATUSにUPと表示されない
docker rm `docker ps -a -q`  <-- 不要なプロセスを削除
docker ps -a <-- 何も表示されなくなる

Tomcat7

ここ
http://www.atmarkit.co.jp/ait/articles/0710/11/news121.htmlを参考に以下のように

wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz .
tar -xzf apache-tomcat-7.0.69.tar.gz
mv -f apache-tomcat-7.0.69 /opt/tomcat7
useradd -d /opt/tomcat7 -s /sbin/nologin tomcat
chown -R tomcat. /opt/tomcat7

Apacheとの連携

/etc/httpd/conf/httpd.confに以下の1行を追加

ProxyPass /tomcat/ ajp://localhost:8009/

とりあえず連携できた
f:id:tomoTaka:20160505075554p:plain

HelloWorld

/opt/tomcat7/webapps/ROOT/WEB-INF/web.xml に以下のurl mappingを追加

<servlet>
	<servlet-name>HelloWorld</servlet-name>
	<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>HelloWorld</servlet-name>
	<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

f:id:tomoTaka:20160505085711p:plain

docker image保存

docker ps -a  <-- 直前のプロセスを確認(NAMES列がxxxの場合)
docker commit xxx centos6:tomcat7-HelloWorld  <-- imageを保存

再度保存しているimageを使って起動

docker run -it centos6:tomcat7-HelloWorld
service http start
/opt/tomcat7/bin/startup.sh
curl http://localhost/tomcat/HelloWorld
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>

なんとか起動できました、、

DockerHubへアップ

docker login --username=tomotaka01 <-- login
docker tag 8858825e987c tomotaka01/centos6:tomcat7-HelloWorld <-- tag
docker push tomotaka01/centos6:tomcat7-HelloWorld <-- up

f:id:tomoTaka:20160505094912p:plain
f:id:tomoTaka:20160505094924p:plain
思っていた名前でpushできなかった、、(汗)