非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Xserver VPSにDockerをインストールしてでWebサーバーを立てるまでの手順

   

Xserver VPSを契約し、Webサイト公開の準備としてDocker環境を構築しました。今回は、リバースプロキシとして便利な「Nginx Proxy Manager」をDocker上で起動させ、ブラウザから管理画面にアクセスできる状態にするまでの手順をまとめます。

環境構築の途中で、ブラウザからアクセスできず足止めを食らった「Xserver VPS特有のパケットフィルター設定」という失敗談も紹介します。

サーバーへの接続

まずはSSHでVPSにログインします。******.pemとという「SSH秘密鍵ファイル」が保存されたフォルダ上でコマンドプロンプトを起動し進めていきます。XXX.XX.XX.XXX(IPアドレス)は、Xserver VPSの管理画面から確認することができます。

ssh -i ******.pem root@XXX.XX.XX.XXX
 

 

Docker と Docker Compose のインストール

UbuntuにDocker環境を構築します。

# パッケージリストの更新
apt update && apt upgrade -y

# DockerとDocker Composeをインストール
apt install -y docker.io docker-compose

# Dockerの起動と自動起動設定
systemctl start docker
systemctl enable docker
 

 

Nginx Proxy Manager のセットアップ

管理用ディレクトリを作成し、Docker Compose用の設定ファイルを用意します。

mkdir npm && cd npm
nano docker-compose.yml
 

docker-compose.yml の内容は以下の通りです。コピペして保存しましょう。

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'   # 管理画面用
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
 

 

コンテナを起動します。

docker-compose up -d
 

 

【トラブル発生】管理画面にアクセスできない?

コンテナ起動後、ブラウザから http://XXX.XX.XX.XXX:81 にアクセスしましたが、「応答時間が長すぎます」というエラーで接続できませんでした。

 

解決策:Xserver VPS側の「パケットフィルター」設定

原因は、Xserver VPS側のファイアウォール(パケットフィルター)でポートが閉じられていたことでした。

  1. Xserver VPS キャッシュボードへログイン。
  2. 対象サーバーの 「パケットフィルター」 設定を開く。
  3. 「フィルター設定」 で以下のポートを許可(追加)。
    • Web (80 / 443) を「追加」
    • カスタム (TCP 81) を「追加」

 

おわりに

これで無事に Nginx Proxy Manager の管理画面が表示されるようになりました。土台が完成したので、次は実際にドメインの設定と SSL化を進めていきます。

スポンサーリンク

 - Xserver VPS