Nginx + DockerによるコンテナベースのプライベートPaaS構築手順

Nginxのインストール先は、Ubuntu Server 20.04 を想定しています。

仮想サーバーとして、IBM Cloud Virtual Server for VPC を使用しています。

目次

概要

Portainerと呼ばれるコンテナベースのPaaS構築ツールと、Webサーバー構築ソフトウェアのNginxを用いたリバースプロキシの組み合わせで、プライベートPaaS環境を構築する手順について紹介します。リバースプロキシを用いることで、負荷分散となるとともに、SSL/TLS証明書を利用可能にするなどセキュリティ強化に役立ちます。

仮想サーバー準備

仮想サーバーは、Ubuntu Server 20.04 が使用可能なものとします。IBM Cloudで安価に仮想サーバーを構築する場合は、IBM Cloud Virtual Server for Classic で、「一時インスタンス」を選ぶと良いでしょう。

Docker環境の用意

Docker(Docker Engine)のインストール

Docker ( Docker Engine )をインストールするサーバーにSSH接続を行い、以下のコマンドを実行する。Macの場合は、ターミナルアプリでSSH接続を行う。Windowsの場合は、TeraTermがSSH接続によく使われる。

下記は、Ubuntu 20.04 を使用した場合。6行目~8行目はまとめて1つのコマンドです。

sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io

sudoなしでDockerを実行できるにするために、次のコマンドを実行する。

getent group docker sudo gpasswd -a $USER docker

一度ログアウト

exit

再度SSH接続を行います。

Docker Compose のインストール

インストール

実行結果 << 2022年6月時点

Portainer CE のインストール

docker-compose.ymlの作成

作業用ディレクトリの作成

docker-compose.ymlの作成

中身

Portainer CEの起動

コンテナの起動確認

実行結果

Nginxによるリバースプロキシの構築 

NginxのStable版リポジトリの追加

署名鍵のインポート

Nginxのインストール

Nginxの起動

サーバー起動および再起動時のNginx自動起動