今回は、DebianとApacheで構成された、
シンプルなコンテナを作成する為の手順を、メモしておこうと思います。
目次
コンテナにまとめる対象
・Debian10(buster-slim)
・Apache(2.4.38)
Debianは、デフォルトインストールされているソフトが少ないslim版を利用します。
また、Apacheは、最新バージョンではなく少し古い2.4.38を指定します。
Dockerfile 作成・配置
まず、Dockerfileを配置するディレクトリを準備します。
ディレクトリを準備したら、Dockerfileという名称の空ファイルを作成します。
そして、Dockerfileの内容を、以下の様に変更します。
FROM debian:buster-slim ARG APACHE_VERSION="2.4.38-3+deb10u4" RUN apt-get update; \ apt-get install -y apache2=$APACHE_VERSION
今回は、Debian10の軽量版を利用しますので、FROMでイメージ指定する際に、
OS名:タグの形式で指定します。
FROM debian:buster-slim
タグ名は、dockerhubのDebianページのサポートタグの一覧から確認して指定します。
また、今回はバージョン指定してApacheをインストールするので、apt-getを利用します。
Apacheインストール実行前に、updateでパッケージインデックスを更新しておきます。
apt-get update
尚、最新版のApacheをインストールする場合、apt-getではなく、aptでも可能です。
※aptを利用する場合でも、念のためupdateでパッケージインデックスを更新します。
FROM debian:buster-slim RUN apt update; \ apt install -y apache2;
Docker image ビルド 実行
Dockerfileを準備できたら、イメージをビルドして実行を行います。
・image ビルド
以下のコマンドで実行を行います。
docker build -t イメージ名 Dockerfile配置パス
docker build -t hello-app1 .
・コンテナ実行
ビルドが完了したら、コマンドでコンテナを実行します。
docker run -dit –name コンテナ名 -p ポート番号 イメージ名
docker run -dit --name debian-apache1 -p 8080:80 hello-app1
-dオプションを指定するとバックグラウンド処理&コンテナID表示されます。
(バックグラウンド処理の為、コンテナOSへはログインされません)
挙動確認
Apacheのバージョンにもよりますが、
今回のバージョンの場合、コンテナ起動時にApacheが起動されます。
(Linuxディストリビューションの種類や、Apacheのバージョンによって異なります)
ブラウザなどで、コンテナ起動時に指定したポート番号を指定しつつhttpアクセスしてみます。
localhost:8080
確認用のページが表示されれば、正常に動作しています。
コンテナ終了
コンテナの処理を終了する場合、以下のコマンドを実行します。
docker stop コンテナ名 or コンテナID
docker stop debian-apache1
補足
Debianにインストール可能なapacheのバージョンを確認するには、
事前にapt-cacheコマンドを利用して確認しておく必要があります。
確認もコンテナを利用した方が簡単ですので、以下の手順を実行して確認できます。
・コンテナ起動・自動ログイン
以下のコマンドを実行して、コンテナを起動して確認用OSにログインします。
docker run -it イメージ名
docker run -it hello-app1
確認用のコンテナOSにログインしたら、
念のためパッケージリストの更新を行います。
apt-get update
・apt-get インストール 可能 パッケージ確認
以下のコマンドで、apt-getでインストール可能なパッケージ確認を行います。
apt-cache madison apache2 対象パッケージ名
apt-cache madison apache2
今回のメモは、以上となります。
Dockerのコンテナをすれば、簡単に色々な環境を再現できるので便利です。