docker-composeでnginxを立ち上げる

ノウハウ
スポンサーリンク

 

ちょっとしたサービスを作りたいと思い、勉強しながらConoHa VPS上でDocker環境を構築中です。
docker-composeを使って、nginxを立ち上げることができたので、備忘録としてその方法をまとめたいと思います。

環境は以下です。

  • ConoHa VPS (メモリ 1GB/CPU 2Core/SSD 100GB)
  • Ubuntu 18.04.4 LTS
  • Docker: 19.03.8 (2020/3/22 執筆時点の最新)
  • Docker Compose: 1.25.4 (2020/3/22 執筆時点の最新)
  • nginx: latest (2020/3/22 執筆時点では、1.17.9が最新)

 

目次

 


 

事前準備

事前に以下の準備が必要です。

  • Docker、Docker ComposeをインストールしたLinuxサーバ

 

もし、まだ準備されていないようなら、以下に導入方法をまとめたので、よろしければご覧になってください。
※仮想専用サーバのConoHa VPS上での構築を想定していますが、Linuxであれば同じ手順を踏襲することができると思います。

 

docker-composeでnginxを立ち上げる

作業ディレクトリとしてホームディレクトリに「work」を作成し、以下のようなディレクトリ構成を作成していきます。

work
|-- docker-compose.yml
|-- nginx
|   `-- conf
|       `-- mysite_nginx.conf
`-- src
    `-- index.html

 

「docker-compose.yml」を作成する

以下のコマンドで「docker-compose.yml」を作成します。
このファイルはDocker Composeで立ち上げるコンテナの定義をしています。

$ vi ~/work/docker-compose.yml

 

【編集内容】

nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx/conf:/etc/nginx/conf.d
      - ./src:/var/www/html
  • image: nginx:latestでnginxの最新のイメージをDocker Hubから自動でダウンロードしてくれます。
  • ports:でホスト側のポートとコンテナ側のポートをつなげることができます。
    - "80:80"とすることで、HTTPの80番ポートをつなげています。
  • volumes:でホスト側からコンテナ側へボリュームをマウントすることができます。(ホスト側とコンテナ側で共有ディレクトリを作るイメージ)
    後で作成するnginxのコンフィグファイルを格納するディレクトリと、srcディレクトリをマウントしています。

 

「nginx/conf/mysite_nginx.conf」を作成する

以下のコマンドで「nginx/conf/mysite_nginx.conf」を作成します。
このファイルはnginxのコンフィグファイルになります。

$ mkdir -p ~/work/nginx/conf/
$ vi ~/work/nginx/conf/mysite_nginx.conf

 

【編集内容】

server {
    listen      80;
    server_name [サーバのIPアドレス];
    charset     utf-8;
    root        /var/www/html;

    client_max_body_size 75M;
}
  • 「docker-compose.yml」でコンテナ側の公開ポートは80番と設定したので、nginxの監視ポートとして、80番ポートを設定します。
  • [サーバのIPアドレス]はご自分の環境に合わせて設定してください。

 

「src/index.html」を作成する

以下のコマンドで「src/index.html」を作成します。
このファイルはnginxに80番ポートでアクセスしてきたPCに対してレスポンスするファイルになります。

$ mkdir -p ~/work/src
$ vi ~/work/src/index.html

 

【編集内容】

Hello World

 

nginxのコンテナを起動させる

以下のコマンドでnginxのコンテナを起動します。

$ cd ~/work
$ docker-compose up

 

【実行結果】

以下のように表示されればOK

Creating nginx ... done

 

nginxにアクセスしてみる

上で起動させたnginxにブラウザからアクセスし、「Hello World」が返るか確認します。
ブラウザから、「http://サーバのIPアドレス」にアクセスしてみてください。
ドメインを設定しているなら、「http://ドメイン名」でもアクセスできるはずです。

 

nginxのコンテナを停止させる

nginxへのアクセス確認ができたら、Ctrl + cでコンテナを停止させましょう。
そうしないと、、、ずっとアクセス可能な状態になってしまうので、注意してください。

 

関連情報

ConoHa上でDockerを導入したり、Webアプリを立ち上げたりしました。以下の記事でまとめたので、よろしければご覧ください。

 

広告

Dockerをやるなら以下の書籍がオススメです。
Dockerとは何か?から複数のコンテナを管理することができるDocker Compose、Kubernetesまでまとめられています。

 


 

ConoHa VPS は初期費用不要で月に数百円で利用できる仮想サーバのサービスです。
以下のような方には非常にオススメのサービスとなっています!

  • 勉強がてらLinuxの環境をちょっと触ってみたい
    管理者権限が実行可能なLinuxサーバ環境が構築可能です!
  • スモールスタートでサービスを提供して、うまくいったら規模をスケールアップしたい
    後からメモリサイズやCPU数などのスケールアップ/スケールダウン可能です!
  • AWSやGCPなどのクラウドサービスは高いので、もっと安くサーバ構築したい
    初期費用なし、月数百円(1時間単位も可)で利用可能です!

 

以上!

コメント

タイトルとURLをコピーしました