Rio Blog

世界のどこかでゆるく生きるITエンジニアのブログ

【環境構築】NginxをDcokerで動かす

動作確認などのために、NginxをDockerコンテナ上でサクッと起動したいことがあるので、メモを残しておきます。

ディレクトリ構成

MyApp
┣ src
┃ ┣ default.conf
┃ ┗ index.html
┗ Dockerfile

ファイルを作成

default.conf

なくてもいいんですが、設定を変更した上で動確したい場合などもあるかもしれないのと、基礎的な扱いを学ぶという意味で、設定ファイルを作成します。作成しなかった場合は、デフォルトの設定だけが読み込まれます。

ここでは内容までは解説しませんので、勉強したい方は「nginx 設定ファイル」「nginx conf」といったキーワードでググってみてください。割と奥が深く、知っておくとWebアプリの開発に役立つかもしれません。

server {
    listen 80;
        root   /usr/share/nginx/html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

index.html

こちらもデフォルトのHTMLでよい場合もあると思いますが、作成しときます。中身は何でも構いません。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>nginx test</title>
  </head>
  <body>
    <h1>Hello, Nginx!</h1>
  </body>
</html>

Dockerfile

# 親イメージ
# latestは省略可、もしくはバージョン番号などの記載も可
FROM nginx:latest

# 作成したNginxの設定ファイルとHTMLファイルをコンテナ内にコピー
COPY ./src/default.conf /etc/nginx/conf.d/default.conf
COPY ./src/index.html /usr/share/nginx/html/index.html

# Nginxをフォアグラウンドで起動
CMD ["nginx", "-g", "daemon off;"]

Dockerコマンドを実行

# ビルド
$ cd /to/path/MyApp
$ docker build -t nginx .

# コンテナ起動
$ docker run -itd --rm --privileged -p 80:80 --name nginx nginx:latest

ブラウザで確認

おわりに

Dockerを使うと簡単に環境を作って壊せるからいいですね。

何度もコンテナを立ち上げては壊して色々試してみましょう。