1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dockerコンテナでnginxを動かす手順 (nginx導入~SSL化まで)

Last updated at Posted at 2023-06-21

Dockerでnginxを動作させるまでの手順

Dockerではnginxを簡単に動作させることが可能です。
nginxの導入~SSL化までの手順を解説。
必要に応じてWSL上のコマンドは先頭にsudoを記述してください。

前提条件

環境はwindows10
WSL2とDockerはインストール済とする
SSL証明書は発行済とする

nginxのインストール

■WSLの起動
CMDなどのターミナルでWSLを起動

> wsl

■nginxのイメージを取得
Dockerでnginxを動作させるのに使える公式イメージは、公式のレジストリサービス「Docker Hub」から取得できます。nginxイメージを取得するためのコマンドは、以下。

$ docker image pull nginx

■nginxを動作させる
nginxイメージを実行することで、Dockerコンテナを生成しnginxを動作させます。

$ docker run --name testnginx -d -p 8082:80 nginx

・「-p 8082:80」
ホスト側のポート番号(8082)と、Docker側のポート番号(80)を紐づけるオプションです。

・「-d」
Dockerコンテナをバックグラウンドで実行するためのオプションです。

・「–name testnginx」
コンテナ名を付与するオプションです。ここではtestnginxという名前をつけてます。

これでnginxの動作が開始されました。「http://コンテナのIPアドレス:8082/」にアクセスすると、以下のようにnginxのデフォルトページが表示されます。
http://127.0.0.1:8082」「http://localhost:8082」など
1a00ab9aeaec7d94c1f6d3befcae783d.png

nginxでSSL化する設定

■dockerコンテナを起動させる

$ docker start testnginx

■dockerコンテナの稼働状況確認

$ docker ps -a

STATUSがUpとなっていたらコンテナは稼働中。Exitedとなってたらコンテナは稼働してません。

■dockerコンテナ内でコマンドを実行

$ docker exec -it testnginx bash

「root@〇〇〇〇〇〇 #」みたいなユーザに切り替わればdockerコンテナに入れました。

■vimエディタのインストール
dockerコンテナ内で使用するテキストエディタをインストールします。
今回はvimエディタを使用します。好みに応じて別のエディタを使用してもOKです。

# apt-get update
# apt-get install vim

apt-get updateでパッケージのアップデートを行います。
apt-get install vimでvimのインストールを行います。

■configファイルの編集
configファイルでリバースプロキシの設定を実施します。
configファイルのあるディレクトリへ移動します。デフォルトでは以下にあります。

# cd /etc/nginx/conf.d

vimでdefault.confを開きます。

# vi default.conf

以下のように編集してみます。

server {
    listen      80 ssl;
    listen [::]:80 ssl;
    server_name testnginx;

    ssl_certificate /etc/nginx/certs/certificate.pem;
    ssl_certificate_key /etc/nginx/certs/privatekey.pem;

    location / {
        proxy_pass http://localhost:8080;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

ssl_certificateにはSSL証明書の場所を指定
ssl_certificate_keyにはプライベートキーの場所を指定
proxy_passにはリバースプロキシしたいサイトを指定

■SSL証明書の配置
以下にSSL証明書を保管するディレクトリを作成します。

# mkdir /etc/nginx/certs

コンテナから抜けて、WSL上へもどります。
WSL上で証明書の配置してあるフォルダへ移動します。
証明書のインストール(コピー)を実施

$ docker cp privatekey.pem testnginx:/etc/nginx/certs
$ docker cp certificate.pem testnginx:/etc/nginx/certs

■windowsのhostsの編集
windows側のhostsに以下を追記する。
hostsの場所C:\Windows\System32\drivers\etc

127.0.0.1 FQDN

FQDNにはSSL証明書を発行した際に紐づけしたFQDNを指定すること。

■nginxの再起動
nginxを再起動する

# service nginx restart

これでSSL化ができます。
https://FQDN:8082/にアクセスして指定したサイトへリバースプロキシされるか確認。
SSL化ができてたらURLの先頭が鍵マークに変わります。
image.png

以上でSSL化ができました!!

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?