Next.js Logo

Dockerネットワーク入門:Apacheコンテナでテストページ表示

thumbnail

※この記事で使用しているリソースを一括でダウンロードすることができます。

前提

・簡単なdockerのコマンドについておおむね理解していること

・vscodeを使用して準備・確認を行います。

・windows(WSL)上での実施手順になっています。

・リソースをダウンロードした方はDockerfileをビルドするから実施できます。※リソースの内容を確認したい方は、リソースの準備の内容に照らし合わせて確認してみてください。

リソースの準備

「Apacheコンテナでテストページ表示」するためにリソースを用意していきましょう。

作業ディレクトリを作成する

まずはvscodeでWSLに接続していきましょう。(ご自身で作業したいディレクトリを選択します)

こちらの記事で「vscodeでwslに接続する方法」を説明しています。

WSLに接続出来たら作業ディレクトリを作成し、移動しておきます。本記事では作業ディレクトリを「docker-httpd」とします。

ターミナル

mkdir docker-httpd cd docker-httpd

下図のようになっていればOKです。

作業ディレクトリを作成

テストページを準備する

作業ディレクトリ(docker-httpd)にディレクトリ「public-html」を作成し、そこに「index.html」を置きます。

ターミナル

mkdir public-html

以下の「index.html」は「Docker apache test」を表示するhtmlになっています。

※「body」タグの中身はご自身で好きな内容を書いてもらっても問題ありません。

index.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> Docker apache test </body> </html>

下図のようになっていればOKです。

テストページを準備

Dockerfileを準備する

以下の内容で作業ディレクトリ(docker-httpd)にDockerfileを作成しましょう。

「FROM httpd:2.4」はApacheのイメージを使用することを意味します。

「COPY ./public-html/ /usr/local/apache2/htdocs/」は作業ディレクトリ「public-html」の内容をコンテナの「/usr/local/apache2/htdocs/」にコピーすることを意味します。

Dockerfile

FROM httpd:2.4 COPY ./public-html/ /usr/local/apache2/htdocs/

下図のようになっていればOKです。

Dockerfileを準備

Dockerfileをビルドする

作成したリソースを使用してビルドしていきましょう。下図のように作業ディレクトリに入って「docker build」しましょう。

ターミナル

docker build . -t httpd

下図のように「httpd」イメージが作成されていればOKです。

Dockerfileをビルド

ポートフォアーディング設定

イメージもできたので「docker run」でコンテナを上げていこうと思うかもしれませんが、普通に「docker run」しただけでは、コンテナのポートにはアクセスできません。

なのでこのセクションではコンテナのポートにアクセスできるようにするポートフォアーディング設定を解説していきます。

ポートフォアーディングとは

そもそも「ポートフォアーディング設定」って何と思った方もいると思うので解説します。

Dockerにおけるポートフォワーディングは、ホストマシンのポートとコンテナ内のポートをマッピングし、外部からコンテナへアクセスできるようにする設定となります。

文字で見るとわかりにくいかと思うので実際にやってみましょう。

コンテナ起動とポートフォアーディング

ポートフォワーディング設定してコンテナを起動するコマンドは以下になります。

特に「-p 8080:80」部分がポートフォワーディング設定している個所になります。ホスト(あなたが使っているPC)の8080ポートと作成するコンテナ(my-running-app)の80ポートをマッピングしています。

ターミナル

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

下図のようにコンテナが立ち上がればOKです。

※この時に「Windows Defender」の「セキュリティ警告」(パブリックネットワークとプライベートネットワークにこのアプリへのアクセスを許可しますか?)が出る場合、基本的にdockerでパブリック・プライベートネットワークどちらも許可する必要はありません。なので「キャンセル」を選択するほうがいいです。(どちらも許可しないとしてもlocalhostでアクセスすることはできます。)

Dockerfileをビルド

テストページを表示する

コンテナが立ち上がったので実際にブラウザで確認してみましょう。

ブラウザ

http://localhost:8080/

下図のようにテストページを準備するで作成した内容が表示されていればOKです。お疲れさまでした。

テストページを表示

最後に

今回はdockerでWebサーバのコンテナ(Apache)を立ち上げる場合、どのようにしてポートフォアーディング設定をするかについて説明していきました。いくつかdockerの記事を見ていただけていれば、どのように使っていくかイメージがついてきたのではないでしょうか?

今回の記事が役に立った、ほかにも記事が見たいという方は最新情報を公式Xで配信しているのでフォローお願いします!