フリーランス チャレンジ!!

フリーランス チャレンジ!!

現役フリーランスエンジニアが書く雑記ブログ

【Dockerfile】NginxとTomcatの連携構築手順(画像あり)

スポンサーリンク

スポンサーリンク

f:id:ksakae1216:20180212100744p:plain

 

以前、作成したDockerコンテナにTomcatを追加で構築します。

これで1つのコンテナにnginx、tomcatがのることになります。

 

※以前、作成したDockerコンテナは下記記事を見てください

【簡単】Dockerfile作成の3ステップ - フリーランス チャレンジ!!

 

 

前回作成したDockerコンテナとイメージを削除

※新しく別でイメージ、コンテナを作成する場合は、この手順を飛ばしてOKです。

 

Dockerコンテナ削除

まずは、コンテナの状況を確認

f:id:ksakae1216:20180212090757p:plain

【コマンド】

docker ps --all

 

コンテナが1つ表示されましたね。

 

次にコンテナを削除します。

f:id:ksakae1216:20180212091009p:plain

【コマンド】

docker rm コンテナ名(コンテナIDでもOK)

 

f:id:ksakae1216:20180212091209p:plain

はい、コンテナの状況を確認してみると、ちゃんと消えてますね。

 

Dockerイメージ削除

無事コンテナを削除できたので次はイメージを削除します。

イメージを削除しないと、Dockerfileを修正してもbuildコマンドでキャッシュが効いてちゃんと変更分が反映されない危険性があるため、キレイにする目的でイメージを削除します。

※buildコマンドでキャッシュを無効にするオプションを使えば本手順は不要ですが今回はオプション使うより、都度イメージを削除するようにします。

 

まずはイメージを確認。

f:id:ksakae1216:20180212091859p:plain

【コマンド】

docker images

 

次にイメージを削除します。

f:id:ksakae1216:20180212092234p:plain

※コマンドの結果出力が多かったので省略してます。

【コマンド】

docker rmi イメージID

※dockerの機能か、zshの機能か不明ですがイメージIDのユニークな先頭文字、今回で言えば1文字を入力してTABキー押下すると、イメージIDを保管してくれます。

 

f:id:ksakae1216:20180212092631p:plain

はい、こちらもイメージの状況を確認するとちゃんと消えてますね。

 

前回作成したDockerfileを修正

今回のメインです。

nginxが構築されている環境にtomcatも構築します。

 

以前の記事通りコマンドを1つずつ確認しながらDockerfileを作成しました。

※今回は確認の過程は省略します。

 

早速作成したDockerfileをご覧ください。

gist1652777c6cacdf86d5a14975ebe75e08

 

まずは13、14行目。

tomcatと管理コンソール(tomcat-admin-webapps)をインストールします。

この時一緒にJava8もインストールされます。

 

16〜20行目。

管理コンソールが使用できるようtomcatの設定ファイルをsedコマンドで修正してます。

コメントを外して、管理コンソールのIDをadmin、パスワードをpasswordにする。

 

24行目で、tomcat用のポートを公開。

 

28行目でtomcatを自動起動しています。

 

Dockerビルド、コンテナ起動、起動確認

それではこのDockerfileでビルドして、コンテナ起動します。

 

Dockerビルド

f:id:ksakae1216:20180212094210p:plain

【コマンド】

docker build -t centos - < CentosWebDockerfile 

 

コンテナ起動

f:id:ksakae1216:20180212094411p:plain

【コマンド】

docker run --privileged -itd -p 8080:80 -p 8081:8080 --name WebApp centos /sbin/init

 

以前の記事と異なるのはポート部分(-p 8080:80 -p 8081:8080)

 

nginxとtomcatの2つ分のポートオプションに設定してます。

”8080:80”はnginxの80番ポートを8080番で

"8081:8080"はtomcatの8080番ポートを8081番で接続できるように。

 

最後に起動を確認します。

nginx

f:id:ksakae1216:20180212095148p:plain

 

tomcat

f:id:ksakae1216:20180212095203p:plain

【URL】

http://localhost:8081/manager/html

 

上記URLでログインIDとパスワードを聞かれるのでadmin、passwordと入力すると無事画面が表示されます。

 

これで1つのコンテナにnginxとtomcatが構築されました。

 

ちなみにこの後のdocker停止、起動は下記の通りです。

【docker停止】

docker stop コンテナ名(この記事だとWebApp)

 

【docker開始】

docker start コンテナ名(この記事だとWebApp)

 

【次の記事】

【Dockerfile】Nginxでリバースプロキシの設定 - フリーランス チャレンジ!!

 

【広告】