docker-compose と nginx を使用してリバースプロキシを立ち上げる【ソースコードコピペ可能】

docker-compose と nginx を使用してWebwサーバーを立ち上げる方法

docker-compose , Docker , Dockerfile を使用して nginx を立ち上げる方法を解説します。

コピペで完成するため、だれでも簡単にサービスを立ち上げれます。

Docker入門 関連記事

nginx + docker-compose のソースコード

ディレクトリ構成は以下の通りです。

この後、docker-compose.yml,Dockerfile, default.conファイルを作成します。

nginxディレクトリとconf.d,htmlディレクトリはあらかじめ作成しておいてください。

C:.

│  docker-compose.yml

│  Readme.md

│

└─nginx

    │  Dockerfile

    │

    ├─conf.d

    │      default.conf

    │

    └─html

            index.html

vscodeでのディレクトリ構造ですと以下の通りです。

docker-compose のソースコード

nginxを動かすためのdocker-compose.ymlファイルは以下の通りです。

内容をコピーしてdocker-compose.ymlファイルを作成し書き込みましょう。

version: "3"



services:

  nginx:

    container_name: nginx

    build:

      ./nginx

    ports:

      - "80:80"

      - "443:443"

    volumes:

      - ./nginx/html:/usr/share/nginx/html

      - ./nginx/conf.d:/etc/nginx/conf.d

ソースコードの内容を少し解説します。

  • portsについて

portは80番と443番を開けている。

これはそれぞれHTTPとHTTPSで使用するポート番号に対応しており、

これがなければブラウザからアクセスすることができない。

  • volumesについて

nginxで必要なフォルダーは主に二つ。

  • htmlフォルダー。ここにはウェブサイトに表示されるhtmlを格納する。

  • conf.dフォルダー。ここにはnginxで使用する設定ファイルを格納する。

htmlにはindex.htmlのみを入れている。

conf.dにはdefault.confファイルを入れており、この中にnginxの設定内容を書き込んでいる。

nginx の Dockerfile

今回のDockerfileは以下のFROM句のみです。

FROM nginx:latest

nginx/conf.d/default.confについて

この設定ファイルには次の内容を書き込んでいる。

server {

    listen       80;

    server_name  localhost;

    location / {

        # ゲストOS上のWebアプリ(index.html等)カレントディレクトリ

        root /usr/share/nginx/html;

        index  index.html index.htm;

    }

}

index.htmlの内容

今回はHello worldを表示させましょう。

以下の内容をコピーして保存してください。

<h1>

    hello world!

</h1>

nginx + docker-compose のソースコードを入手

以下のgithubリポジトリからソースコードを手に入れることができます。

gitコマンドをインストールしている方は次のコマンドからインストールしましょう。

git clone https://github.com/minegishirei/DockerImages.git

nginx を docker-composeで立ち上げる。

ディレクトリ移動

cd DockerImages/nginx

コンテナ立ち上げ

docker-compose up

http://localhost/index.html

にアクセス。

以上。終わり。

https://minegishirei.hatenablog.com/entry/2023/09/16/112502