VPSでDockerを始めよう

ApexVPSチーム著 • 最終更新日:2026年7月 • 8分で読めます

VPSでDockerを実行すると、空のUbuntuボックスからウェブアプリ、データベース、またはセルフホストサービスを数分で稼働させることができます。システムパッケージや依存関係の競合に悩む代わりに、ビルド済みのイメージをプルしてコンテナを起動するだけです。この初心者向けガイドでは、UbuntuやDebianへのDockerとDocker Composeのインストール、必要な中核概念、最初のコンテナの起動、ボリュームによるデータ永続化、そして問題を避けるためのセキュリティの基本を説明します。

なぜVPSでDockerを実行するのか?

仮想プライベートサーバーは完全なrootアクセスと専用リソースを提供し、コンテナのニーズにぴったりです。Dockerをインストールすれば、多数の分離されたサービスを互いに干渉させることなく並行して実行できます。各コンテナには独自のライブラリが同梱されているため、Nodeアプリ、Postgresデータベース、リバースプロキシを1台のマシンでクリーンに共存させられます。目標がVPSでのアプリのセルフホスティング(個人クラウド、Wiki、メディアサーバーなど)なら、Dockerはすべてのサービスを整然と再現可能に保ちます。

コンテナは移植性にも優れています。ラップトップで動く同じComposeファイルがサーバーでも動くため、典型的な「自分のマシンでは動くのに」問題を解消します。ミス後にサービスを再構築するのも、パッケージを再インストールするのに午後を費やすのではなく、数秒で完了します。

重要な概念を分かりやすい言葉で

コマンドラインに触れる前に、4つの基本要素を知っておくと役立ちます:

ステップ 1: Ubuntu または Debian に Docker をインストールする

Docker Engineをインストールする最も簡単で公式にサポートされている方法は、便利なスクリプトを使用することです。SSHでサーバーに接続し、次のコマンドを実行します:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

これにより、ComposeプラグインとともにDocker Engineがインストールされます。完了したら、バージョンを確認します:

docker --version
docker compose version

デフォルトではDockerにsudoが必要です。通常のユーザーで実行するには、dockerグループに自分を追加してから、ログアウトして再ログインし、変更を反映させます:

sudo usermod -aG docker $USER

Dockerはほとんどのシステムで起動時に自動開始します。手動で有効にする必要がある場合は、次のようにします:

sudo systemctl enable --now docker

パッケージリポジトリ方式を希望する場合や、お使いのディストリビューションの詳細な手順が必要な場合は、公式のDockerインストールドキュメントにすべてのオプションが記載されています。上記の便利なスクリプトは新しいVPSに最適です。

ステップ 2: 最初のコンテナを実行する

古典的なhello-worldイメージでインストールをテストします:

docker run hello-world

Dockerはイメージをプルし、一度実行して確認メッセージを表示します。次に、実際に目に見えるものを実行しましょう。このコマンドはNginxウェブサーバーをバックグラウンドで起動し、ホストのポート8080をコンテナのポート80にマッピングします:

docker run -d -p 8080:80 --name web nginx

ブラウザでhttp://your-server-ip:8080を開くと、Nginxのウェルカムページが表示されるはずです。知っておくと便利なフラグをいくつか紹介します:

実行中のものを確認し、完了したらコンテナを停止して削除します:

docker ps
docker stop web
docker rm web

日常の作業のほとんどは、いくつかのコマンドで対応できます。docker imagesはプルしたイメージを一覧表示し、docker logs webはトラブルシューティングのためにコンテナの出力を表示し、docker exec -it web bashは実行中のコンテナ内でシェルを開いて内部を調べられます。これらの5つか6つのコマンドを覚えれば、小さなサーバーを自信を持って管理でき、必要に応じて残りを調べられます。

ステップ 3: マルチコンテナアプリにDocker Composeを使用する

長いdocker runコマンドを入力するのはすぐに飽きてしまいます。Docker Composeを使えば、スタック全体を1つのファイルで記述し、1つのコマンドで起動できます。compose.yamlというファイルを作成しましょう:

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - web-data:/usr/share/nginx/html
    restart: unless-stopped

volumes:
  web-data:

同じディレクトリから、すべてをバックグラウンドで起動します:

docker compose up -d

Composeがネットワーク、名前付きボリューム、コンテナを自動的に作成します。便利なコマンドもご紹介:

docker compose ps
docker compose logs -f
docker compose down

restart: unless-stoppedポリシーにより、再起動やクラッシュ後もサービスが自動的に復旧します。24時間監視していないサーバーには便利です。

ステップ4: ボリュームでデータを永続化

ここは初心者が最も間違えやすいポイントです。コンテナのファイルシステムに書き込まれた内容は、コンテナが削除または再作成されると消えてしまいます。データを保持するには、ボリュームに保存しましょう。一般的な2つの方法があります:

コマンドラインからボリュームを検査・管理:

docker volume ls
docker volume inspect web-data

重要なパスがボリュームを指している限り、コンテナを削除して再構築してもデータは失われません。ボリュームディレクトリをサーバーのバックアップに含めてください。

ステップ5: イメージとコンテナの更新

コンテナイメージには、他のソフトウェアと同様にセキュリティおよび機能のアップデートがあります。Composeスタックを更新するには2段階の手順が必要です: 新しいイメージをプルし、コンテナを再作成します。

docker compose pull
docker compose up -d

データがボリュームに保存されているため、再作成は安全です。時間が経つと未使用のイメージが溜まりディスクを消費します。定期的に削除しましょう:

docker image prune

予測可能で再現性のある更新を望む場合は、latestではなくpostgres:16のような特定のバージョンタグに固定してください。予期しない変更を避けられます。

初心者のための基本的なDockerセキュリティ

コンテナは便利ですが、魔法のセキュリティ境界ではありません。いくつかの習慣でトラブルを防げます:

何かを公開する前に、VPSを最初の10分で保護するためのチェックリストをご確認ください。SSHキー、ファイアウォール、自動アップデートがDockerホストと完璧に連携します。

Dockerに最適なVPSの選び方

Dockerは控えめなハードウェアでも動作しますが、複数のコンテナをスタックすると専用リソースが重要になります。共有・オーバーセルドホスティングでは、騒がしい隣人が最悪のタイミングでデータベースを圧迫する可能性があります。ApexVPSは真に専用のvCPU、NVMe SSDストレージ、完全なrootアクセスを提供し、コンテナが期待どおりのパフォーマンスを発揮できるようにします。すべてのプランでUbuntu、Debianなどの人気ディストリビューションをサポートし、サインアップ時にSSHキーを設定できます。

お支払いはOxaPay経由の暗号通貨のみで、Bitcoin、Ethereum、USDTを含む30種類以上の暗号通貨に対応しています。クレジットカードも銀行口座もKYCも不要です。アクセス情報を受け取るためのメールアドレスを提供するだけです。ApexVPSの料金ページで仕様とリージョンを比較して、ご自身のコンテナワークロードに適したプランをお選びください。

よくある質問

VPSでDockerを実行するには多くのRAMが必要ですか?

いいえ。Docker自体は軽量で、オーバーヘッドはほとんどありません。1つまたは2つのコンテナは2GBのRAMで快適に動作しますが、4GB以上あればデータベースや複数のサービスを同時に実行するための余裕が生まれます。

docker-compose と docker compose のどちらを使うべきですか?

現代のインストールでは、Composeはプラグインとして提供されるため、コマンドはスペース付きのdocker composeです。古いスタンドアロンのdocker-composeバイナリもまだ動作しますが、廃止されつつあります。新規セットアップではプラグインバージョンを使用してください。

コンテナを削除したとき、私のデータはどこに保存されますか?

コンテナ内に書き込まれたものはすべて削除時に失われます。重要なデータは名前付きボリュームまたはバインドマウントに保存して、コンテナの再作成後も存続できるようにしてください。それがデータベースやアップロードを安全に保つ方法です。

Docker対応VPSを暗号通貨で支払うことはできますか?

はい。ApexVPSのチェックアウトはOxaPay経由の暗号通貨のみで、Bitcoin、Ethereum、USDTを含む30種類以上のコインに対応しています。サインアップにはメールアドレスのみが必要で、クレジットカードや本人確認は不要です。

最初のコンテナを起動する準備はできましたか? Docker対応VPSプランを見る →