背景
環境構築を楽にするために、docker の勉強をしております。
今回は docker hub のイメージを使用して、Apache の導入をしました。
環境
Amazon Linux release 2 (Karoo)
Docker version 20.10.4
手順
HTMLファイルを配置するディレクトリの作成
HTMLファイルを配置するディレクトリを作成します。
今回は/opt/app
配下にHTMLファイルを配置します。
sudo mkdir /opt/app
docker インストール
以下の記事に手順を残してありますので、ご参照ください。
Apache イメージのダウンロード
今回は以下のイメージを使用します。
2021/06/25 時点では、2.4.48 バージョンが最新なのでこちらをダウンロードします。
イメージのダウンロードはdocker pull
コマンドを使用します。
:
の後にバージョン指定できますが、指定しなかった場合はlatest
バージョンがダウンロードされます。
sudo docker pull httpd:2.4.48
ダウンロードできたか確認します。
sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd 2.4.48 30287d899656 43 hours ago 138MB
コンテナの作成
Apache イメージからコンテナを作成します。
コンテナの作成にはdocker run
コマンドを使用します。
今回使用するオプションは以下の通りです。
# コンテナに入る必要がないため
-d バックグラウンド実行
# コンテナが80番でhttpdを受けているため、ホストOSから疎通できるよう設定する。
-p ホストOSとコンテナ間のポートフォワーディング ホストOS側:コンテナ側
# HTMLファイルをホストOS側に配置するための設定
-v ホストOSとコンテナのマウントの設定 ホストOS側:コンテナ側
実行したコマンドは以下の通りです。
sudo docker run -d -p 80:80 -v "/opt/app/:/usr/local/apache2/htdocs/" httpd:2.4.48
コンテナが作成できたか確認します。
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
59a6ddb31028 httpd:2.4.48 "httpd-foreground" 25 seconds ago Up 24 seconds 0.0.0.0:80->80/tcp funny_kalam
HTMLファイルの配置
Apache のドキュメントルートは/usr/local/apache2/htdocs/
に設定されています。
今回は/opt/app/
にマウントしているので、/opt/app/
配下にHTMLファイルを配置します。
sudo vi /opt/app/index.html
hello world
最後にURLをブラウザに入力して、配置したHTMLファイルが表示されるか確認します。
無事表示されたので、作業終了です。
最後に
今回は docker hub で公開されているイメージを使って、Apache を導入しました。
あくまで私の感想ですが、システムエンジニア初心者の方が Apache のお試しをするのであれば、yum でのインストールでも十分だと思います。
ただ docker の便利なところは全く同じ環境を複製することができるという点だと思いますので、複数のサーバに同じ Apache の環境を用意したい場合に適していると思います。
例えば、本番サーバに docker を使用している場合は、開発環境に同じコンテナを使用することで同じ環境を用意できるので便利だと思います。
ただ、本番サーバの Apache はなるべく最小限でインストールするため、ソースコードからビルドしてインストールしていると思います。
ですので、次は自分でイメージを作成する勉強をして記事にします!