VPSでDockerをインストールしてコンテナを運用する方法【初心者向け】

VPSにDockerをインストールし、docker-composeでコンテナを運用する手順を解説。ポートやボリュームの設定もカバー。初心者でも安心のチュートリアル。

DockerVPSコンテナdocker-composeポートボリューム2026/5/25

はじめに

Dockerは、アプリケーションをコンテナとして実行できるプラットフォームです。VPS(仮想プライベートサーバー)上でDockerを使うと、環境の差異を気にせずにアプリをデプロイでき、スケーラビリティも向上します。このチュートリアルでは、VPSにDockerをインストールし、docker-composeを使ってコンテナを運用する方法をステップバイステップで解説します。

前提条件

  • VPS(Ubuntu 20.04/22.04 LTS推奨)
  • SSHでVPSにアクセスできること
  • sudo権限を持つユーザー
  • 1. Dockerのインストール

    1.1 パッケージの更新と依存関係のインストール

    SSHでVPSにログインし、以下のコマンドを実行します。

    sudo apt update
    sudo apt install -y ca-certificates curl gnupg lsb-release
    

    1.2 Docker公式GPGキーの追加

    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    

    1.3 リポジトリの追加

    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
    

    1.4 Dockerのインストール

    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
    

    1.5 Dockerサービスの起動と自動起動設定

    sudo systemctl start docker
    sudo systemctl enable docker
    

    1.6 インストールの確認

    sudo docker run hello-world
    

    「Hello from Docker!」と表示されれば成功です。

    1.7 ユーザーをdockerグループに追加(sudo不要で実行)

    sudo usermod -aG docker $USER
    

    ログアウトして再ログインすると、sudoなしでdockerコマンドが使えます。

    2. docker-composeのインストール

    Docker Composeは、複数のコンテナを定義・実行するためのツールです。Docker Engine 20.10以降ではプラグインとして利用可能です。

    2.1 インストール確認

    docker compose version
    

    バージョンが表示されればOKです。もしインストールされていない場合は、以下の手順でインストールします。

    sudo apt update
    sudo apt install docker-compose-plugin
    

    3. コンテナの基本操作

    3.1 イメージの取得とコンテナの実行

    docker pull nginx:latest
    docker run -d --name my-nginx -p 8080:80 nginx:latest
    
  • -d: バックグラウンド実行
  • --name: コンテナ名
  • -p 8080:80: ホストの8080番ポートをコンテナの80番ポートにマッピング
  • ブラウザで http://:8080 にアクセスするとNginxのデフォルトページが表示されます。

    3.2 コンテナの一覧表示

    docker ps
    docker ps -a  # 停止中のコンテナも表示
    

    3.3 コンテナの停止と削除

    docker stop my-nginx
    docker rm my-nginx
    

    4. ボリュームの利用

    ボリュームを使うと、コンテナ内のデータをホストに永続化できます。

    4.1 ボリュームの作成とマウント

    docker volume create nginx-data
    docker run -d --name my-nginx -p 8080:80 -v nginx-data:/usr/share/nginx/html nginx:latest
    

    これで、/usr/share/nginx/html の内容がボリュームに保存されます。

    4.2 バインドマウント

    ホストのディレクトリを直接マウントすることもできます。

    docker run -d --name my-nginx -p 8080:80 -v /path/on/host:/usr/share/nginx/html nginx:latest
    

    5. docker-composeによる複数コンテナの管理

    5.1 docker-compose.ymlの作成

    例として、WordPressとMySQLを起動する構成を作ります。

    version: '3'
    

    services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress

    wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db_data: {}

    5.2 コンテナの起動

    docker compose up -d
    

    ブラウザで http://:8000 にアクセスするとWordPressのセットアップ画面が表示されます。

    5.3 コンテナの停止と削除

    docker compose down
    

    ボリュームも削除する場合は -v オプションを付けます。

    6. ポート設定の注意点

  • ホストのポートは競合を避けるため、使用中のポートを確認してから設定します。
  • ファイアウォールで必要なポートを開放してください(例:ufw)。
  • sudo ufw allow 8080/tcp
    sudo ufw allow 8000/tcp
    

    7. ボリュームの管理

    7.1 ボリュームの一覧

    docker volume ls
    

    7.2 ボリュームの詳細

    docker volume inspect <volume_name>
    

    7.3 不要なボリュームの削除

    docker volume prune
    

    8. コンテナのログ確認とトラブルシューティング

    docker logs <container_name>
    docker logs -f <container_name>  # リアルタイム表示
    

    *この記事は実際のVPS環境での構築経験に基づいています。料金・スペックは執筆時点のものであり、最新情報は各事業者の公式サイトでご確認ください。*

    まとめ

    このチュートリアルでは、VPSにDockerをインストールし、docker-composeを使ってコンテナを運用する基本的な手順を解説しました。ポートやボリュームの設定を理解することで、より柔軟なアプリケーションのデプロイが可能になります。ぜひ実際に試してみてください。