基礎編05・Docker

Dockerってなに?
作ったサービスを、実行環境ごとまとめて、同じ形で動かしやすくする仕組み。

Coolifyの説明にも出てきた「Docker」という言葉。ここでは、このはちゃんと一緒に、公開作業のどこで・なぜ使われているのかを整理します。

「私のPCでは動くのに」を防ぐには?

先に安心してほしいこと

Coolifyを使うなら、Dockerのコマンドをすべて覚える必要はありません。この記事では、Dockerが何をしているのかと、画面に用語が出てきたときに困らないための基礎だけを扱います。

Coolifyの説明で「Dockerがよく使われる」って出てきたけど、結局Dockerって何なの?

コードだけじゃなく、環境ごと箱に詰める仕組み。

前の記事で、コードを「レシピ」と例えました。レシピだけを渡されても、キッチンの道具や調味料が違えば、同じ味は再現できません。

Dockerは、コードと、それを動かすために必要なソフトウェア・ライブラリ・実行環境をまとめて、Dockerが使える環境なら同じ形で動かしやすくする仕組みです。まとめられた「箱詰めのひな型」をイメージと呼び、そのイメージから実際に起動して動いているものをコンテナと呼びます。レシピと道具・調味料をセットにして箱詰めしたものが「イメージ」、実際にその箱を開けて厨房で調理している状態が「コンテナ」、というイメージです。

「イメージ」と「コンテナ」、何が違うの?

イメージは、コード・ライブラリ・実行環境をまとめた、いわば「箱詰めされたひな型」。まだ動いていない状態です。コンテナは、そのイメージから実際に起動した、動いているものを指します。「イメージを元に、コンテナを起動する」という言い方をします。

  1. コード+ライブラリ+実行環境を用意する
  2. 箱詰めしてDockerイメージを作る
  3. 起動してDockerコンテナにする

もう少し正確に

コンテナは、仮想マシン(VM)とは仕組みが異なります。VMはOSごと丸ごと再現しますが、コンテナはホストOSのカーネルを共有しながら中身だけを分離するため、より軽量に動きます。

なんでそんな箱が必要なの? 普通にコードだけ置けばいいんじゃ……?

なぜ箱に詰める必要があるのか

開発の世界には、「自分のPCでは動くのに、サーバーに置いたら動かない」という有名な悩みがあります。原因は、PCとサーバーで、プログラミング言語のバージョンや設定が少し違うこと。Dockerは、こうした環境差分を減らすのに役立ちます。

  • 環境差分に強くなる。 「バージョンが違って動かない」を減らせる。
  • 複数のサービスを、設定が衝突しにくい形で共存させやすい。 それぞれ独立したコンテナに分かれる。
  • 同じイメージを、そのまま別のVPSでも動かせる。 環境を移すときの手間が減る。

もう少し正確に

Dockerを使わなくてもデプロイ自体は可能です。シンプルな静的サイトなどでは不要な場合もあります。ただ、AIエージェントや複数ツールを組み合わせる構成では、使われる場面が多くなります。

ConoHa VPSでは、Dockerが導入されたアプリケーションテンプレートを選んでサーバーを作成できます。Ubuntu 24.04とDocker環境を一から用意する手間を減らせます。n8nやDifyをこの環境にデプロイする活用例も公式に案内されています。

Dockerの説明でよく出てくる5つの言葉

ここだけ知っておけば、他の記事や管理画面で用語に出会っても困りません。

  • Dockerfile:1つのイメージを作るための設計書
  • Docker Compose:複数のコンテナをまとめて動かす構成表
  • ポート:コンテナへアクセスするための入口
  • 環境変数:起動時に渡す設定値。APIキーなどにも使う
  • ボリューム:コンテナを作り直しても残したいデータの保存場所

1台のVPSに、n8nとDifyと自作アプリを一緒に置きやすいのは、この箱のおかげだったんだ!

1台のVPSに、箱を並べて置く

Coolifyで「複数プロジェクトをまとめて管理できる」と説明したのは、まさにこの仕組みが理由です。1台のVPSの中に、複数のコンテナ(箱)を並べて置いておけます。

スクロールできます

n8n
PostgreSQL
自作アプリ
環境
Node.js
データベース
あなたのコード
役割
ワークフロー実行環境
設定・履歴の保存
必要なライブラリ
ポート
5678
5432
8080

それぞれが独立したコンテナに分かれているため、ライブラリのバージョンが違っても基本的には干渉しにくくなります。

  1. 利用者がHTTPSでn8nコンテナにアクセスする
  2. n8nコンテナがPostgreSQLコンテナにデータを保存する
  3. PostgreSQLコンテナは、保存先としてボリュームを使う

n8n本体やPostgreSQLのコンテナを入れ替えても、PostgreSQLがボリュームに保存したワークフローや設定データは残せます。

ここではシンプルな例を並べていますが、ツールによっては1つのサービスが複数のコンテナで構成されることもあります。たとえばDifyは、画面(Web)・API・データベースなど、複数のコンテナが組み合わさって動く構成です。

もう少し正確に

箱同士は分かれていますが、VPS全体のCPU・メモリは共有しています。コンテナの数を増やすほどリソースを使います。Coolifyを同じVPS上で使う場合、ConoHa公式の要件は最小2コア・2GB、推奨4GB以上です。複数のアプリを動かす場合は、さらに余裕のあるスペックが推奨されています。

CoolifyやDokployとの関係

  1. GitHubにコードを置く
  2. Dockerfileなどをもとにビルドする
  3. Dockerイメージができる
  4. VPS上でコンテナを起動する
  5. ポート・ドメインをつないで公開する

Coolifyを使う場合、この流れの多くをCoolifyが画面の裏側で進めてくれます。

Dockerが「箱を作って動かす仕組み」なら、CoolifyやDokployは「その箱を画面から管理するツール」です。裏側では、あなたが直接コマンドを打たなくても、Dockerの仕組みを使ってイメージを作り、そこからコンテナを起動しています。

Dockerを直接触らなくても、Coolify経由で恩恵だけ受けられるってことか。少し安心した。

よくある質問

Dockerは無料で使える?

ConoHa VPS上で使うDocker Engineはオープンソースで、ライセンス料金はかかりません。PC向けのDocker DesktopやDocker Hubなどの関連サービスには、利用条件や有料プランがあります。

Dockerを使うとVPSが重くなる?

仮想マシンよりは軽量ですが、コンテナを増やすほどメモリやCPUを使います。特にビルド時は負荷が上がりやすいため、動かすサービスの数に応じてVPSのスペックを見直すとよいでしょう。

コンテナを作り直すと、データも消える?

コンテナの中にだけ保存したデータは、コンテナを削除すると失われます。データベースやn8nの設定など、残したいデータは「ボリューム」という箱の外の保存場所に置きます。ボリューム自体のバックアップも必要で、Coolify編で触れた「アプリデータのバックアップは利用者側」という話がここにもつながります。

APIキーやパスワードは、どこに書けばいい?

イメージの中に直接書き込むのは避けます。環境変数などを使って、コンテナを起動するときに設定するのが基本です。

「Docker Compose」って何?

複数のコンテナを、まとめて設定・起動するための仕組みです。たとえばDifyは、画面(Web)・API・データベースなど複数のコンテナが組み合わさって動く構成になっています。こうした「必要な箱ひとそろい」を、1つの設定ファイルでまとめて管理するのがDocker Composeです。

Dockerの設定を自分で書く必要がある?

ゼロから書くこともできますが、CoolifyやDokployのテンプレートを使えば、多くの場合は自分で書かずに済みます。仕組みを知っておくと、うまく動かないときの手がかりになります。

次に読む記事

基礎編のつづき

ConoHa VPSのスタートアップスクリプトってなに?

前の記事

全体像に戻る

監修:ConoHa by GMO 最終更新日: 2026年9月30日

ConoHaのサービス

  • ブログ・ホームページに最適なレンタルサーバー

  • サイト運営やアプリ開発に最適

  • 初心者でもかんたんにマルチプレイを楽しめる

  • ブラウザだけでできるAI画像生成

  • SEOに強いAIライティングツール