第 6 章 アプリケーション開発・運用
6.2 Docker イメージを作成
作業用サーバーで Docker コンテナイメージを作成します。
本章では、Docker 社が提供する DockerHub より入手可能な CentOS7 のベースイメージに Tomcat をインストールする手順を示します。
以降、OSS のバージョンは本書作成時点で有効なバージョンを記載しております。実行時点で対象バージョンの資産が存在しない場合がございますのでご注意ください。
6.2.1 事前準備
Tomcat の Dockerfile を作成するために事前に必要な作業を行います。
6.2.1.1 Tomcat インストールファイルのダウンロード
Dockerfile と同じディレクトリ配下にインストール用の tar ファイルをダウンロードします。
下線部は適宜変更してご利用ください。
6.2.1.2 Tomcat 環境設定スクリプトの作成
Dockerfile と同じディレクトリ配下に Tomcat 環境設定用のシェルスクリプト(setenv.sh)を作成します。
6.2.1.3 Tomcat 起動スクリプトの作成
Dockerfile と同じディレクトリ配下に Tomcat 起動用のシェルスクリプト(start_tomcat.sh)を作成します。
●実行コマンド
curl -O http://ftp.riken.jp/net/apache/tomcat/tomcat-8/v8.5.16/bin/apache-tomcat-8.5.16.tar.gz
#!/bin/bash
CATALINA_HOME="/usr/lib/apache-tomcat-8.5.16"
CATALINA_PID="/usr/lib/apache-tomcat-8.5.16/catalina.pid"
JRE_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre"
All Right Reserved, Copyright © FUJITSU LIMITED 2018 134
6.2.2 Dockerfile を作成
Docker イメージを作成するために、Dockerfile を作成します。Dockerfile には、コンテナを構築するためコマンド等を記述します。
Dockerfile を活用することにより、同一環境の構築が容易となりますので、従来の開発と比較して構築コストの削減や環境差異の発生を防止することが可能です。
以下の作成例を参考に Dockerfile を作成します。
■補足
下記の項目以外にも Dockerfile として指定可能な命令が存在します。詳細は、Docker の公式ドキュメントを参照してください。
カテゴリ 項目 説明
Dockerfile FROM ベースとなる Docker イメージを指定します。
ローカルレジストリのイメージを利用する場合は、「FROM reg.local:5000/<イメージ名:タグ名>」と指定します。
MAINTAINER 作成者情報を指定します。
RUN イメージビルドの際に指定したコマンドを実行します。
ENV 環境変数を設定します。
CMD コンテナ起動時に実行するコマンドを指定します。
●実行コマンド vi Dockerfile
#Dockerfile 作成例
#ベースとなる CentOS7 のイメージを指定 i FROM centos:centos7
#作成者
MAINTAINER testuser
#Tomcat のインストール RUN mkdir /tmp/work
ADD apache-tomcat-8.5.16.tar.gz /tmp/work RUN mv /tmp/work/apache-tomcat-8.5.16 /usr/lib
#OpenJDK のインストール
RUN yum install -y java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3 ADD setenv.sh /usr/lib/apache-tomcat-8.5.16/bin
#Tomcat 起動スクリプトコピー
ADD start_tomcat.sh /tmp/work
#各種スクリプト実行権限設定
RUN chmod +x /usr/lib/apache-tomcat-8.5.16/bin/setenv.sh RUN chmod +x /tmp/work/start_tomcat.sh
#Tomcat を起動
CMD /tmp/work/start_tomcat.sh
6.2.3 イメージ作成
Dockerfile をビルドすることによって、Docker イメージを作成します。
ビルド時に指定するローカルレジストリは「reg.local:5000」となります。「イメージ名:タグ名」は任意の値を設定してください。
「Successfully built」と出力された場合にはビルド成功となります。
6.2.3.1 イメージ作成確認 作成したイメージを一覧で確認します。
●実行コマンド docker images
●実行結果
作成したイメージの一覧が表示されます。
REPOSITORY TAG IMAGE ID CREATED SIZE
<イメージ名> <タグ名> <イメージ ID> <作成時期> <イメージのサイズ>
表示例:
REPOSITORY TAG IMAGE ID CREATED SIZE test-namespace/local_tomcat v1.0 f8hfe8ahd8d9 3 minutes ago 306.4 MB
●実行コマンド
docker build -t <ローカルレジストリ>/<イメージ名:タグ名> <Dockerfile が存在するディレクトリパス>
実行例:(カレントディレクトリに Dockerfile が存在)
docker build -t reg.local:5000/test-namespace/local_tomcat:v1.0 .
●実行結果
Sending build context to Docker daemon x.xx kB Step 1 : FROM <Dockerfile に記述したベースイメージ>
…
Successfully built xxxxxxxxxx 表示例:
Sending build context to Docker daemon 8.973 MB Step 1 : FROM centos:centos7
Trying to pull repository docker.io/library/centos ...
…
Successfully built 609883adf3b1
All Right Reserved, Copyright © FUJITSU LIMITED 2018 136