このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Docker入門】Apacheコンテナを実行してみる

ここでは、Apacheコンテナを実行してみます。

Apacheとは

まず、Apatche(アパッチ)について簡単に解説します。

 Apache(アパッチ)は、世界中で広く使用されている無料のオープンソースのウェブサーバーソフトウェアです。ウェブサイトのコンテンツをインターネットに配信します。

 Apacheは、高い安定性と信頼性から人気を集めており、個人から企業などで幅広く利用されています。最初のバージョンが公開されたのは1995年と古く、細かなアップデートを繰り返しながら20年以上も使われ続けており、運用実績があります。

 Apacheの呼び名ですが、今ではApache(アパッチ)で定着していますが、正式には「Apache HTTP Server」といいます。非営利団体のアパッチソフトウェア財団(Apache Software Foundation)が開発しています。

 Apacheという名前の由来については2つの説があります。1つ目は「アメリカ先住民族アパッチ族に由来する」というものです。2つ目は「いくつものソフトウェアパッチ、つまり修正を経てきたことから)“パッチのサーバー”を意味する」というものです。

 最近では、動作が軽量なnginxの人気がでており、台頭してきていますが。まだまだ、実績のあるApacheは、世界中で使われ続けています。

Apacheコンテナの実行

Apacheとは、何者なのかが理解できたとこで、Apacheコンテナを実行していきます。

 コンテナのライフサイクルにおける①のApacheイメージのpull から④のApacheコンテナの停止までを操作していきます。

Apacheイメージについて

Docker Hubに登録されているApacheイメージを利用していきますが、注意することがあります。

それは、

イメージの名前が「Apache」ではなく「httpd」であることです。

イメージのpull から実行まで

「docker container run」コマンドを使って、イメージのpull、コンテナの作成と実行を行います。

 「docker container run」コマンドは、イメージがまだローカルホストにない場合、Docker Hubからpull するします。すなわち、ライフサイクルの①~③までが、一気に行われます。

Apacheコンテナの実行

それでは、Apacheコンテナを実行していきます。

以下のコマンドを実行します。

docker container run --name webserver3 -d -p 8080:80 httpd

 「-d」オプションを指定してデタッチモードで、コンテナを実行します。httpdイメージには、タグを指定しないため、「latest」(最新バージョン)が適用されます。

コマンドの意味は以下のとおりです。

docker container run--name webserver3-d -p 8080:80httpd
コマンド本体コンテナの名前:webserver3
(オプション)
-d:デタッチモード、-p:ポート番号
(オプション)
イメージ名:httpd
(パラメータ)
コマンドの意味

docker container run --name webserver3 -d -p 8080:80 httpd」コマンドを実行します。

PS C:\Users\joeac> docker container run --name webserver3 -d -p 8080:80 httpd
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
e1caac4eb9d2: Already exists
87b0fe460fd9: Pull complete
4f4fb700ef54: Pull complete
9cebd3e3b523: Pull complete
e9304da947c5: Pull complete
b60d4b66b268: Pull complete
Digest: sha256:104f07de17ee186c8f37b9f561e04fbfe4cf080d78c6e5f3802fd08fd118c3da
Status: Downloaded newer image for httpd:latest
a17cb5e178e665ceef0abe5bbad4e53745b3e0e8e56494cc4d06856ed257d6b3

Webブラウザを起動します。

URLに「http://localhost:8080/」と入力します。

下図のように「It works!」と表示されたら成功です。

Apacheコンテナの停止

webserver3コンテナを停止させます。

「docker stop」コマンド

実行中のコンテナを停止させるには、「docker stop」コマンドを使用します。

「docker stop webserver3」コマンドを実行します。

PS C:\Users\joeac> docker stop webserver3
webserver3

Webブラウザをリーロードします。

 コンテナが停止しているため、Webserver3に接続できず、下図のように「正常に接続できませんでした」と表示されます。

「docker start」コマンド

停止中のコンテナを実行させるには、「docker start」コマンドを使用します。

「docker start webserver3」コマンドを実行します。

PS C:\Users\joeac> docker start webserver3
webserver3

Webブラウザでリロードします。

webserver3に接続できるようになったため、下図のように再び「It works!」が表示されます

「docker stop」コマンド

 今後のDocker演習に備えて、実行中のwebserver3コンテナを停止させておきます。「docker stop」コマンドを使用します。

「docker stop webserver3」コマンドを実行します。

PS C:\Users\joeac> docker stop webserver3
webserver3

以上で、Apacheコンテナの実行に関する解説は終わりです。