ちょっとしたサービスを作りたいと思い、勉強しながら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時間単位も可)で利用可能です!
以上!
コメント