Jasper Inc.

地方在住エンジニアのテック&ライフブログ

【Docker】コンテナでNginxを起動する

動作確認などのために、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
FROM rockylinux:9

RUN dnf -y update
RUN dnf -y install \
    nginx \
    emacs \
    sudo

RUN systemctl enable nginx

COPY ./src/default.conf /etc/nginx/conf.d/default.conf
COPY ./src/index.html /usr/share/nginx/html/index.html

CMD ["/sbin/init"]

Dockerコマンドを実行

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

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

ブラウザで確認

おわりに

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

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