Metabase on Ubuntu — ノーコードBIツールのDockerセルフホスト

データエンジニアリング

この記事のポイント

  • metabase/metabase:latest(v0.62.2.7)を Ubuntu 24.04 上で実際に起動して確認した
  • docker run 一行で起動でき、/api/health{"status":"ok"} を返すまでおよそ10秒
  • 起動直後のメモリ使用量は約 1.7 GB。2 GB 以上の VPS が最低ラインになる
  • PostgreSQL・MySQL・BigQuery など 20 種以上のデータソースに GUI からノーコードで接続できる
  • 本番利用では H2 をやめて PostgreSQL をメタデータ DB に使うのが公式推奨

Metabase は、SQL が書けなくてもデータを可視化・集計できるオープンソースの BI ツールです。PostgreSQL や MySQL にブラウザから接続し、ドラッグ&ドロップでグラフを作れます。SaaS 版もありますが、Docker を使えば Ubuntu VPS 上で完全セルフホストできるため、データを外部サービスに出したくない場合にも使えます。

実際に Ubuntu 24.04.4 LTS の環境でコンテナを起動してみると、イメージ取得から GUI が開くまでは拍子抜けするほど簡単でした。正直、詰まったのは「RAM 不足でコンテナがサイレントに落ちる」という初回起動時だけです。メモリの話は後半で詳しく触れます。

本記事のコマンドはすべて Ubuntu 24.04 + Docker 29.5.3 の環境で実行した結果を掲載しています。

目次

  1. 動作確認済み環境
  2. Docker のインストールと Metabase 起動
  3. 初期セットアップウィザード
  4. データベースの接続設定
  5. Query Builder でデータを可視化する
  6. Docker Compose で本番構成にする
  7. よくあるエラーと解決策
  8. まとめ

動作確認済み環境

以下の環境で動作を確認しています。

項目 バージョン / 値
OS Ubuntu 24.04.4 LTS(Noble Numbat)
Docker 29.5.3(Docker 公式リポジトリ)
Metabase v0.62.2.7(metabase/metabase:latest)
内蔵 Java OpenJDK 21.0.11(Metabase イメージに同梱)
確認日 2026年6月20日
Metabase コンポーネントバージョン一覧(実測)
Metabase コンポーネントバージョン一覧(実測)

メモリは 2 GB 以上必須

Metabase は Java ベースのアプリケーションのため、起動直後に約 1.7 GB のメモリを使います。1 GB プランの VPS では OOM(メモリ不足)でコンテナがサイレントに終了します。最低 2 GB、快適に使うなら 4 GB 以上のプランを選んでください。

Docker のインストールと Metabase 起動

手順1:Docker をインストールする

すでに Docker が入っている場合はこの手順を飛ばしてください。Ubuntu 24.04 への Docker インストールは公式スクリプトを使うのが確実です。




ubuntu@server: ~
$ curl -fsSL https://get.docker.com | sh
# インストール完了後、バージョン確認
$ docker –version
Docker version 29.5.3, build d1c06ef
$ sudo usermod -aG docker $USER
# ← ログインし直すと sudo なしで docker コマンドが使えるようになる

手順2:Metabase コンテナを起動する

Docker イメージを pull して起動するだけです。ポート 3000 でサービスが起動します。




ubuntu@server: ~
$ docker pull metabase/metabase:latest
latest: Pulling from library/metabase
Digest: sha256:e3ee7f6ce6ba4278cc375fd3e0f3f9f66c84f8359496b6dbe0a59152555add27
Status: Downloaded newer image for metabase/metabase:latest
$ docker run -d \
–name metabase \
-p 3000:3000 \
-v metabase-data:/metabase-data \
-e MB_DB_FILE=/metabase-data/metabase.db \
metabase/metabase:latest

337f5c1a384d40778eb3e8bee82b92807e73bdc56af8bc7c600e0926fbdec7bf
$ curl -s http://localhost:3000/api/health
{“status”:”ok”}
Docker インストールと Metabase 起動ログ(実測)
Docker インストールと Metabase 起動ログ(実測)

私が確認したとき、docker run を実行してから /api/health{"status":"ok"} を返すまで約 10 秒でした。JVM の初期化に時間がかかるため、すぐにブラウザを開いてもまだ起動中のことがあります。

手順3:起動状態とリソース使用量を確認する




ubuntu@server: ~
$ docker ps –filter name=metabase –format “{{.Names}}\t{{.Status}}\t{{.Ports}}”
metabase Up 2 minutes 0.0.0.0:3000->3000/tcp
$ docker stats –no-stream –format “{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}” metabase
metabase 0.36% 1.724GiB / 60.43GiB
Metabase コンテナリソース使用量(実測)
Metabase コンテナリソース使用量(実測)

アイドル時の CPU は 0.36% 程度とほぼゼロですが、メモリは常時 1.7 GB 前後を確保します。VPS を選ぶ際のポイントになります。

初期セットアップウィザード

ブラウザで http://<サーバーのIP>:3000/ を開くと、初回はセットアップウィザードが表示されます。

Metabase ログイン画面(起動直後)
Metabase ログイン画面(起動直後)

ウィザードでは以下を設定します。

  1. 管理者アカウント(名前・メールアドレス・パスワード)
  2. 組織名(サイト名)
  3. 使用するデータベースの選択(後で変更可)
  4. 匿名使用データの送信可否

設定後はダッシュボードが表示されます。初期状態では H2 の「Sample Database」が接続済みで、サンプルデータを使ったグラフを試せます。

Metabase ホームダッシュボード(セットアップ完了後)
Metabase ホームダッシュボード(セットアップ完了後)
著者アイコン
著者アイコン

セットアップウィザードを終えると “Good to see you” という画面になります。左サイドバーの「Add your data」から自分のデータベースを追加するのが次のステップです。

データベースの接続設定

Metabase はデフォルトで H2(組み込みデータベース)を使いますが、これは本番用途には向きません。PostgreSQL や MySQL などのデータソースを追加する方法を示します。

①対応データベース一覧

v0.62 時点で標準内蔵しているドライバーとサードパーティドライバーは以下の通りです。

Metabase 対応データベース一覧
Metabase 対応データベース一覧

②PostgreSQL を接続する手順

Admin パネル(/admin/databases)の「Add database」から設定します。

Metabase Admin データベース管理画面
Metabase Admin データベース管理画面



Admin > Databases > Add database
Database type: PostgreSQL
Display name: My Production DB
Host: db.example.com
Port: 5432
Database name: mydb
Username: metabase_reader
Password: ********

接続テストが通れば「Save」で完了です。Metabase が自動でスキーマをスキャンし、数分後にテーブル一覧が使えるようになります。

読み取り専用ユーザーを作ることを推奨

Metabase に渡すデータベース認証情報は、SELECT 権限のみの読み取り専用ユーザーを作って使うと安全です。adminroot 権限のアカウントを直接入れないようにしましょう。

Query Builder でデータを可視化する

右上の「+ New」→「Question」でクエリビルダーが開きます。SQL を書かなくても、テーブルとフィルタ・集計条件をクリックで選べます。

Metabase Query Builder(データソース選択画面)
Metabase Query Builder(データソース選択画面)

基本的な使い方

  1. 「Pick your starting data」でテーブルを選択する
  2. 「Filter」で絞り込み条件を追加する(例:日付 > 2026-01-01)
  3. 「Summarize」で集計軸を選ぶ(例:日別の件数 COUNT)
  4. グラフ種別(棒グラフ・折れ線・散布図など)を右上で切り替える
  5. 「Save」してダッシュボードに追加する

集計結果は CSV でそのままダウンロードできます。「SQL が書けなくてもレポートを作りたい」というチームメンバーに渡すダッシュボードを作る用途に向いています。

Docker Compose で本番構成にする

開発・検証なら docker run 一行で十分ですが、本番では PostgreSQL をメタデータ DB として使う構成が公式推奨です。以下は最小構成の docker-compose.yml です。




docker-compose.yml
version: “3.9”
services:
metabase:
image: metabase/metabase:latest
ports:
– “3000:3000”
environment:
MB_DB_TYPE: postgres
MB_DB_HOST: db
MB_DB_PORT: 5432
MB_DB_DBNAME: metabasedb
MB_DB_USER: metabase
MB_DB_PASS: securepassword
depends_on:
– db
restart: unless-stopped

db:
image: postgres:16-alpine
environment:
POSTGRES_DB: metabasedb
POSTGRES_USER: metabase
POSTGRES_PASSWORD: securepassword
volumes:
– pg-data:/var/lib/postgresql/data
restart: unless-stopped

volumes:
pg-data:



ubuntu@server: ~/metabase
$ docker compose up -d
✔ Container metabase-db-1 Started
✔ Container metabase-metabase-1 Started
$ docker compose ps
NAME STATUS PORTS
metabase-db-1 running 5432/tcp
metabase-metabase-1 running 0.0.0.0:3000->3000/tcp

H2 ではデータが単一ファイルに入るため、バックアップや移行が複雑です。PostgreSQL に切り替えると、pg_dump で定期バックアップできるようになります。

よくあるエラーと解決策

①コンテナがすぐに終了する / ログに OOM が出る

最もよく起きます。docker logs metabase を見て Killedjava.lang.OutOfMemoryError が出ていれば RAM 不足です。




ubuntu@server: ~
$ docker logs metabase 2>&1 | tail -5
Killed
$ free -h
total used free
Mem: 1.0Gi 0.9Gi 87Mi ← 1GB プランでは足りない

解決策は VPS プランを 2 GB 以上にアップグレードするか、-e JAVA_OPTS="-Xmx512m" でヒープ上限を下げて試してみることです(ただし動作が不安定になりやすい)。

②ポート 3000 が「Connection refused」になる

起動直後は JVM の初期化中です。10〜30 秒待ってから再アクセスしてください。UFW でポートを閉じている場合は sudo ufw allow 3000 が必要です。




ubuntu@server: ~
$ sudo ufw allow 3000
Rule added
$ sudo ufw status | grep 3000
3000 ALLOW Anywhere

③「H2 is not recommended for production」という警告が出る

デフォルトの H2 データベースを使っているときに出る正常な警告です。開発・検証用途なら無視して構いません。本番に移行する際は上述の Docker Compose 構成で PostgreSQL に切り替えてください。

まとめ

Metabase を Ubuntu 24.04 + Docker でセルフホストする手順をまとめます。

  • docker pull metabase/metabase:latest でイメージ取得(v0.62.2.7)
  • docker run -d -p 3000:3000 で起動、/api/healthok を返せば完了
  • メモリは起動直後で 1.7 GB 使用。VPS は 2 GB 以上必須、4 GB 以上を推奨
  • 初回はウィザードで管理者アカウントを作成し、Admin パネルからデータソースを追加
  • 本番運用では PostgreSQL をメタデータ DB に使う Docker Compose 構成に移行する

クラウドの VPS 上で動かすなら、Vultr の Cloud Compute(2 GB プラン)が費用対効果のバランスが取れています。東京リージョンがあるので、日本国内のユーザーが使うダッシュボードのレスポンスも良好です。

VPS を選ぶ際の比較は Ubuntu VPS 比較(2026年版)も参考にしてください。

コメント

タイトルとURLをコピーしました