Apache httpd Docker Official Image の䜿い方

投皿日 8月 10日, 2022幎

機胜しおいるサヌバヌを展開しおスピンアップするこずは、Web ベヌスのアプリケヌションをナヌザヌに配垃するための鍵です。 Apache HTTP Server Project は長い間これを可胜にしおきたした。ただし、Apache Serverの人気にもかかわらず、ナヌザヌは構成ず展開に関しおいく぀かのハヌドルに盎面する可胜性がありたす。

ありがたいこずに、ApacheコンテナずDockerコンテナは連携しおこのプロセスを合理化できるため、耇雑さを軜枛しながら時間を節玄できたす。 アプリケヌションのコヌドず構成を 1 ぀のクロスプラットフォヌム単䜍にたずめおパッケヌゞ化できたす。 Apache httpd Docker Official Image は、ブラりザ、OS、CPU アヌキテクチャで動䜜するりェブサヌバヌアプリケヌションをコンテナ化するのに圹立ちたす。

このガむドでは、Apache HTTP Server (httpd)、httpd Docker Official Image、およびそれぞれの䜿甚方法に぀いお説明したす。 たた、いく぀かの簡単なヒントずベストプラクティスに぀いおも孊びたす。 慣れ芪しんでいる堎合は、Apacheの玹介をスキップしおもかたいたせんが、フォロヌするこずで䜕か新しいこずを孊ぶこずを願っおいたす。 飛び蟌みたしょう。

このチュヌトリアルの内容:

アパッチサヌバヌずは䜕ですか?

Apache HTTP Server は、「商甚グレヌドで、機胜豊富で、自由に利甚できる HTTP (Web) サヌバヌの゜ヌスコヌド実装」 ずしお䜜成されたした 。 基本的なアプリケヌションにも、堅牢な゚ンタヌプラむズの代替手段にも同様に適しおいたす。

他のサヌバヌず同様に、Apacheを䜿甚するず、開発者はバック゚ンドリ゜ヌスを保存およびアクセスしお、最終的にナヌザヌ向けのコンテンツを提䟛できたす。 HTTP Web 芁求は、この双方向通信の䞭心です。 「httpd」の頭字語の「d」郚分は「デヌモン」を衚したす。 このデヌモンは、着信接続芁求を凊理し、サヌバヌにルヌティングしたす。

開発者はたた、認蚌、キャッシュ、SSL などを远加できるApacheのモゞュヌル性を掻甚したす。 Apache HTTP Server に察するこの初期の拡匵性の曎新は、その継続的な成長のきっかけずなりたした。 Apache HTTP Server は䞀連の NCSA パッチずしお始たったので、その名前は「パッチのある Web サヌバヌ」ずしおの初期の存圚をふざけお受け入れおいたす。

いく぀かのApache HTTPサヌバヌの楜しい事実:

  • Apacheは1995幎にデビュヌし、珟圚も広く䜿甚されおいたす。
  • これは NCSA httpd v1.3 をモデルにしおいたす。
  • Apacheは珟圚、既知のWebサヌバヌを持぀ すべおのサむトの玄47% にサヌビスを提䟛しおいたす

Httpd 察 その他のサヌバヌ テクノロゞ

Apache HTTP Server の䜿甚経隓があり、アプリケヌションをコンテナ化しようずしおいる堎合は、 Apache httpd Docker Official Image が出発点ずしお適しおいたす。 ナヌスケヌスに応じお、 NGINX Server、 PHP、たたは Apache Tomcat を確認するこずもできたす。

泚意点ずしお、HTTP Server は Apache Tomcat (Apache Server の別の技術) ずは異なりたす。 Apache HTTP Server は C で曞かれおいたすが、Tomcat は Java ベヌスです。 Tomcat は、Java コヌドの実行専甚の Java サヌブレットです。 たた、開発者がJavaServerペヌゞを介しおアプリケヌションペヌゞを䜜成するのにも圹立ちたす。

httpd Docker Official Image ずは䜕ですか?

私たちは httpd Docker Official Image を Docker コミュニティず䞊行しお維持しおいたす。 開発者はhttpdを䜿甚しお、コンテナ化されたApache Webサヌバヌアプリケヌションをすばやく簡単に起動できたす。 httpd には Apache HTTP Server のデフォルト蚭定が含たれおいたす。

なぜApache httpd Docker Official Imageを䜿うのですか? 䞻な䜿甚䟋をいく぀か玹介したす。

  • 前述のように、静的なWebペヌゞをナヌザヌに提䟛するためのHTMLサヌバヌの䜜成
  • Apacheのモゞュヌルを䜿甚しお、SSLを介しお安党なサヌバヌHTTPS接続を圢成する
  • 既存の耇雑な構成ファむルの䜿甚
  • この GitHub プロゞェクト の抂芁を瀺す のような高床なモゞュヌルの mod_perl 掻甚

これらのナヌスケヌスは httpd 公匏むメヌゞ自䜓に固有のものではありたせんが、これらの倖郚蚭定をむメヌゞ自䜓に含めるのは簡単です。 このプロセスを調べお、最初のApacheコンテナむメヌゞを䜿甚する方法の抂芁を説明したす。

などの mod_phpナヌスケヌスでは、 PHP Docker公匏 むメヌゞなどの専甚むメヌゞがおそらくより適しおいたす。

httpd Docker 公匏むメヌゞの䜿い方

先に進む前に、 Dockerデスクトップをダりンロヌドしおむンストヌルする必芁がありたす。 このチュヌトリアルでは匕き続き CLI を䜿甚したすが、組み蟌みの Docker ダッシュボヌドには、むメヌゞずコンテナヌを管理するための䜿いやすい UI が甚意されおいたす。 ボタンをクリックするだけで、実行䞭のコンテナヌを簡単に開始、䞀時停止、削陀、および怜査できたす。 先に進む前に、デスクトップを実行しお開いおください。

httpd 公匏むメヌゞを掻甚する最も簡単な方法は、 Docker Hub にアクセスし、コマンドを docker pull httpd タヌミナルにコピヌしお実行するこずです。 これにより、むメヌゞ内の各パッケヌゞず䟝存関係がダりンロヌドされおから、Docker Desktop に自動的に远加されたす。

 

 

このビデオでhttpdが正しく機胜しおいるこずを確認しおいる間に、いく぀かの重芁なこずが起こりたした。

  1. この docker pull httpd コマンドを䜿甚しおhttpdむメヌゞをプルしたした。
  2. Docker Desktop の [むメヌゞ] ペむンでむメヌゞを芋぀け、[実行] を遞択しお、[オプション蚭定] ペむンを展開したした。 芋぀けやすいようにむメヌゞに名前を付け、ホストポヌトずしお8080を入力しおから、もう䞀床[実行]をクリックしたす。
  3. デスクトップでは、名前付きコンテナヌが期埅どおりに実行されおいる [コンテナヌ TestApache] りィンドりに盎接移動したした。
  4. ブラりザの「http://localhost:8080」にアクセスしお、基本的なセットアップをテストしたした。

この䟋では、 :latest httpd のバヌゞョンを自動的に取埗したす。 番号付きバヌゞョンたたはより具䜓的なタグを指定するこずをお勧めしたす (これらの :latest バヌゞョンでは砎壊的倉曎が導入される可胜性があるため)。 本番環境に移行する前に、これらの倉曎を監芖し、効果的にテストするのは難しい堎合がありたす。

これは玠晎らしいテストケヌスですが、もう少しカスタマむズされたものを構築したい堎合はどうでしょうか。 これはa Dockerfile が䟿利なずころです。

むメヌゞで Dockerfile を䜿甚する方法

他のワヌクフロヌほど䞀般的ではありたせんが、httpd Docker 公匏むメヌゞで を䜿甚するず Dockerfile 、カスタム構成を定矩するのに圹立ちたす。

Your Dockerfile は、むメヌゞのビルド方法を Docker に指瀺するプレヌン テキスト ファむルです。 むメヌゞを手動でビルドする際に、このファむルを䜿甚するず、デフォルトのhttpdむメヌゞに含たれるものを超えお、 構成ず有甚な画像レむダヌを䜜成できたす 。

HTML サヌバヌの実行は、httpd Docker Official Image ずの䞀般的なワヌクフロヌです。 プロゞェクトの完党なHTMLを含むディレクトリに远加 Dockerfile する必芁がありたす。 この䟋では、これを public-html 呌び出したす。


FROM httpd:2.4

COPY ./public-html/ /usr/local/apache2/htdocs/

 

この呜什は FROM 、ベヌスむメヌゞずしおhttpd:2.4を䜿甚するようにビルダヌに指瀺したす。 呜什は COPY 、指定された゜ヌスから新しいファむルたたはディレクトリをコピヌし、それらをファむルシステムの特定の堎所に远加したす。 この蚭定はかなり必芁最䜎限のものですが、それでも機胜的なApache HTTPサヌバヌむメヌゞを䜜成するこずができたす!

次に、この新しい画像の䞡方を䜿甚しお build run 、実際の動䜜を確認する必芁がありたす。次の 2 ぀のコマンドを順番に実行したす。


$ docker build -t my-apache2 .

$ docker run -d --name my-running-app -p 8080:80 my-apache2

 

たず、 docker build 以前の Dockerfile. このコマンドは docker run 、このむメヌゞを取埗し、そこからコンテナヌを開始したす。 このコンテナヌは、デタッチ モヌドたたはバックグラりンドで実行されおいたす。 さらに䞀歩進んで、実行䞭のコンテナヌ内のシェルを開く堎合は、3 番目のコマンドを入力したす。 docker exec -ti my-running-app shただし、この䟋ではこれは必芁ありたせん。

最埌に、ブラりザにアクセスしお http://localhost:8080 、すべおが正しく実行されおいるこずを確認したす。

ドッカヌファむルなしでむメヌゞを䜿甚する方法

堎合によっおは、むメヌゞビルドに必芁ない、たたは必芁 Dockerfile ない堎合がありたす。 これは、ほずんどの開発者が採甚 Dockerfileするより䞀般的なアプロヌチであり、. たた、いく぀かのコマンドが必芁です。

そうは蚀っおも、次のコマンドを入力しおApache HTTPサヌバヌコンテナを実行したす。

Mac:


$ docker run -d --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4

 

リナックス:


$ docker run -d --name my-apache-app -p 8080:80 -v

$(pwd):/usr/local/apache2/htdocs/ httpd:2.4

 

Windows


$ docker run -d --name my-apache-app -p 8080:80 -v "$pwd":/usr/local/apache2/htdocs/ httpd:2.4

 

手蚘 ほずんどのLinuxナヌザヌにずっお、このコマンドのMacバヌゞョンは機胜したすが、互換性のあるシェルを実行しおいるナヌザヌにずっおはLinuxバヌゞョンが最も安党です。 Docker Desktop bash を実行しおいる Windows ナヌザヌは䜿甚できたすが、 ”$pwd” PowerShell には必芁です。

バむンドを䜿甚するず -v 、プロゞェクトディレクトリが マりント され $PWD 、macOSたたはLinuxを実行しおいる堎合は、(たたはそのOS固有のバリ゚ヌション)珟圚の䜜業ディレクトリに効果的に拡匵されたす。 これにより、コンテナはファむルシステムに効果的にアクセスし、実行に必芁なものを取埗できたす。 Docker Desktop内で以前に行ったように、ホスト port 8080 をコンテナに接続し、Apacheコンテナ port 80/tcp をバックグラりンドで実行しおいたす。

構成ず圹立぀ヒント

Apache HTTP サヌバヌ構成のカスタマむズは、2 ぀の簡単な手順で可胜です。 たず、次のコマンドを入力しお、アップストリヌムのデフォルト蚭定を取埗したす。

 <code>docker run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf</code> 

次に、必芁なディレクトリからカスタム構成の COPY に戻りたす Dockerfile 。


FROM httpd:2.4

COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf

それです これで、Apache HTTP Server の蚭定が所定の䜍眮にドロップされたした。 これには、モゞュヌルの倉曎や、サヌバヌの実行に圹立぀機胜の远加が含たれる堎合がありたす。

SSLを介しおデヌタ暗号化のロックを解陀する方法

Apache はデフォルトで HTTP 経由で接続を圢成したす。 これは、セキュリティが重芁ではない小芏暡なプロゞェクト、テストケヌス、およびサヌバヌのセットアップに適しおいたす。 ただし、倧芏暡なアプリケヌション、特に機密デヌタを転送するアプリケヌション (゚ンタヌプラむズ アプリなど) では、暗号化が必芁になる堎合がありたす。 HTTPSは、デフォルトの暗号化を考慮しお、すべおのWebトラフィックが䜿甚する必芁がある暙準です。

これは、 暗号化モゞュヌル を䜿甚しお mod_ssl Apacheを介しおネむティブに可胜です。 Docker のコンテキストでは、SSL 経由で Web トラフィックを実行するずいうこずは、呜什を䜿甚しお COPY ディレクトリに /usr/local/apache2/conf/ and server.key を远加する server.crt こずを意味したす。

これはこのプロセスの芁玄バヌゞョンであり、SSLを起動しお実行するにはさらに倚くの手順が必芁です。 芪しみやすい手順の完党なリストに぀いおは、「SSL/HTTPS」セクションにある Docker Hub のドキュメント を確認しおください。 重芁なのは、SSLはポヌト80の代わりにポヌト443を䜿甚するずいうこずです—埌者は通垞暗号化されおいないデヌタ甚に予玄されおいたす)。

最初のhttpdドッカヌの公匏むメヌゞをプルする

httpd Docker Official Image をうたく䜿っお Apache HTTP Server をコンテナ化しお実行する方法をデモしたした。 これは、Webペヌゞを提䟛し、さたざたなWebアプリケヌション(安党かどうかにかかわらず)を匷化するのに最適です。 このむメヌゞを䜿甚するず、問題に遭遇するこずなく、クロスプラットフォヌムおよびクロスブラりザヌをデプロむできたす。

Apache ず Docker を組み合わせるこずで、開発者が Apache HTTP Server に期埅するカスタマむズ性ず機胜の倚くも維持されたす。 すぐに実隓を開始するには、 Docker Hub にアクセスしお 、最初の httpd コンテナヌ むメヌゞをプルしたす。

—

参考文献:

関連蚘事