新しくDockerとコンテナを利用する方にとって、Apache Docker Containerのセットアップは素晴らしい始め方です。軽量でセキュアなテクノロジーのおかげで、Docker上にアプリケーションを作成することは大きな利点です。
このチュートリアルでは、Ubuntu上でApache Docker Containerをセットアップする方法を学びます。このチュートリアルを使用してDockerの基本を学び、Apacheウェブサーバーも手に入れましょう!
前提条件
ステップバイステップで進める場合は、このチュートリアルでDockerがインストールされたUbuntu 14.04.4 LTS以上のマシンを用意してください。このチュートリアルでは、Ubuntu 18.04.5 LTS、Docker v19.03.8、および13.213.48.113の公開IPアドレスを使用します。
Apache Docker Containerのセットアップ
すでにDockerがインストールされていると仮定して、まずApacheコンテナをセットアップしましょう。後で起動方法も学びます。
Apache Dockerコンテナを素早く立ち上げる最も簡単な方法の1つは、公式Dockerレジストリ Docker Hub から既存のコンテナイメージをダウンロードすることです。この例では、ApacheというDockerコンテナをダウンロードして実行します。
わずかなDockerコマンドを使用すると、すぐにApacheのインスタンスを実行できます。以下の手順に従ってください。
注意:このチュートリアルでは、Dockerコマンドの詳細な説明は行いません。Dockerコマンドについて詳しくは、Dockerコマンドラインのドキュメントページを参照してください。
1. Ubuntuマシンのターミナルを開きます。
2. 以下のコマンドを実行して、Apacheを含むDockerイメージ(httpd
)をダウンロードします。このコマンドにより、DockerレジストリからApacheイメージがダウンロードまたはプルされます。
下のスクリーンショットは、Docker Hubからイメージをプルする際の予想される結果を示しています。

3. 次に、以下のコマンドを実行して、コンピュータ上で利用可能なすべてのイメージをリストすることにより、イメージのダウンロードが完了したか確認します。docker images
コマンド
下のスクリーンショットでは、Docker Hubからダウンロードしたイメージを1つ持っていることがわかります。

Dockerコマンドを使用してApacheコンテナを実行します。
前のセクションでは、Docker HubからDockerイメージをダウンロードしました。 これで、そのイメージからコンテナを作成する準備が整いました。 Apacheコンテナを実行するには、次のようにDockerコマンドを実行する必要があります:
1. ダウンロードしたApache Dockerイメージを元に新しいコンテナを作成するために、docker run
コマンドを呼び出します。
次に、docker run
コマンドは、作成したばかりのコンテナの一意のコンテナIDを返します。 このコンテナIDを、将来コンテナを削除する場合に備えて、以下のハイライトされたボックスに保存してください。

2. Apacheコンテナが実行されていることを確認したら、Webブラウザを使用してPublic-Ip-address:80に移動してApache Webインターフェイスにアクセスできるかどうかを確認してください。 下の画像と同じメッセージが表示されれば、Apache Dockerコンテナが正常に起動しています。
Ubuntu 14.04.4 LTSマシンがセキュリティグループでポート80のインバウンドポートを許可していることを確認してください。

3. 最後に、必要なくなった場合は、以下の docker stop
コマンドを実行してコンテナを停止します。このコマンドにより、コンテナインスタンスが正常に停止します。
また、
docker stop
コマンドで実行中のコンテナの名前を指定して停止することもできます(docker stop docker-apache
)。
Docker ファイルから Apache Docker コンテナを実行する
前のセクションでは、デフォルトの httpd Docker イメージを実行して Apache Docker コンテナを起動する方法を学びました。異なるコンテンツを表示したり、別のポートで公開したりする場合はどうすればよいですか?
Docker ファイルを使用してコンテナをデプロイすると、異なる OS 上で同じセットアップをテストする際に手動でイメージを作成する手順を省略できます。Docker ファイルアプローチは、Docker イメージの自動化されたスクリプトです。
では、Docker ファイルを作成してコンテナを実行しましょう。
1. ~/apache-server-docker-demo という名前のフォルダを作成し、そのフォルダに作業ディレクトリを変更します(cd
)。
2. 別のファイルを作成し、以下の構成をコピーして、ファイル名をindex.htmlとして保存します。保存先は、~/apache-server-docker-demoディレクトリ内です。index.htmlファイルは、後でコンテナが起動すると表示されるHTMLページです。このチュートリアルでは、ApacheコンテナをDockerで実行する方法を説明します。This tutorial will teach how to Run Apache container in docker。
3. 別のファイルを作成し、以下の構成をコピーして、ファイル名をDocker fileとして保存します。保存先は、~/apache-server-docker-demoディレクトリ内です。作業が完了したら、DockerはこのDockerFileを使用して、任意のベースイメージの上に新しいDockerイメージをビルドするために必要なすべてのコマンドを実行します。
以下のDockerFileには、Apacheコンテナをビルドするためのさまざまな手順/命令が含まれています:
Maintainer
– Maintainer命令は、このファイルを管理する著者に関する情報を提供します。FROM
– FROM命令は新しいビルドステージを初期化し、後続の命令のためのベースイメージを設定します。以下のコードスニペットでは、centos:7
がベースイメージです。COPY
– COPYコマンドは、ホストマシン(Dockerホスト)からコンテナにファイルをコピーします。前述のDockerホストで作成した****index.htmlが、コンテナの/var/www/htmlディレクトリにコピーされます。EXPOSE
– EXPOSE命令は、コンテナが実行時に指定されたネットワークポートでリッスンすることをDockerに通知します。Apacheウェブサーバーはデフォルトでポート80
で公開されています。
4. 次に、tree
コマンドを実行してフォルダー内のすべての必要なファイルを確認します。

5. 次に、docker build
コマンドを実行してイメージを構築します。 t
フラグは、イメージapache-server
にv1
のタグを付けるために使用され、.
は現在の作業ディレクトリを示します。

docker build
command Dockerがビルドされると、さまざまな属性が返されます。その属性の1つがREPOSITORYです。REPOSITORY名はapache-server
で、イメージはv1
のバージョンが付けられています。

6. 最後に、新しく構築したイメージを使用してapacheコンテナを実行します。docker run
コマンドを実行します。
p
フラグは、コンテナのポートをホストに公開します。これは80:80
です。-it
フラグは、Dockerにコンテナのstdinに接続された疑似ターミナルを割り当てるように指示します。
最後に、Webブラウザを使用してPublic-ip-address:80に移動することで、Apache Webインターフェースにアクセスできるかどうかを確認してください。Webインターフェースでこのメッセージが表示されます。これは、index.htmlファイルを作成し、Dockerが起動時にそれをコンテナにコピーしたためです。

結論
このチュートリアルでは、Dockerイメージを使用してApache Dockerコンテナを設定するプロセスをサポートすることを目的としています。 Dockerファイルを使用してApacheコンテナを起動する方法、編集してカスタマイズコンテナを構築することができます。
では、ApacheサーバーDockerイメージ上に何を構築する予定ですか?