Mailcow on Ubuntu — オールインワンメールサーバーをDockerで構築

メールサーバー

「独自ドメインでメールを送受信したい」「Gmail や Outlook に依存したくない」——そう思いながらも、メールサーバーの複雑さに敬遠してきた方は多いはずです。SMTP・IMAP・スパムフィルタ・SSL証明書をそれぞれ手で設定するのは、たしかに大変です。

そこで本記事では Mailcow(メールカウ) を紹介します。メールサーバーに必要な 17 個ものコンポーネントを、docker compose up -d の1コマンドで立ち上げられるオールインワンパッケージです。管理画面(WebUI)も付属しており、ドメイン追加・ユーザー管理をブラウザから行えます。

本記事では Ubuntu 24.04 LTSDocker CE v29.5.3 を使い、Mailcow の導入から管理ダッシュボードへのアクセスまでを実際のコマンド出力とスクリーンショットで解説します。

この記事のポイント

  • Mailcow は Postfix・Dovecot・Rspamd・nginx など 17 コンテナ をまとめて管理できるオールインワン構成
  • Ubuntu 24.04 LTS + Docker CE v29.5.3 + Docker Compose V2 で動作確認済み(2026-06-14 実測)
  • 最低スペックは 2vCPU / 6GB RAM / 20GB SSD。Vultr や ConoHa VPS の標準プランで動く
  • git clonemailcow.conf 編集 → docker compose up -d の3ステップで起動
  • Let’s Encrypt SSL 証明書を自動取得・自動更新。管理ダッシュボードはブラウザで操作可能

動作確認済み環境

項目 バージョン / 詳細
OS Ubuntu 24.04.4 LTS (Noble Numbat)
Docker CE v29.5.3(公式リポジトリ候補バージョン)
Docker Compose V2.2.3(Compose Plugin 版)
Mailcow バージョン 2026-05c(最新)
確認日 2026-06-14
テスト環境 Ubuntu 24.04 Docker公式イメージ・Mailcow デモ環境

注意

Mailcow はポート 25(SMTP)を開放する必要があります。自宅環境ではプロバイダが 25番ポートをブロックしているケースがほとんどです。VPS での運用を強く推奨します。また、有効なドメイン名と DNS 設定(MX / A レコード)が必須です。

Mailcow とは — なぜ選ばれるのか

Mailcow(正式名称 mailcow-dockerized)は、ドイツの Servercow が開発・メンテナンスするオープンソースのメールサーバースイートです。GitHub のスター数は 10,000 を超え、セルフホストメール界隈では定番の選択肢になっています。

①Mailcow が束ねる主要コンポーネント

普通にメールサーバーを構築しようとすると、Postfix・Dovecot・スパムフィルタ・WebUIをそれぞれ個別にインストール・設定する必要があります。Mailcow はこれらを1つの Docker Compose スタックにまとめています。

Mailcow 2026-05c 稼働コンテナ一覧(demo.mailcow.email 実測)
Mailcow 2026-05c 稼働コンテナ一覧(demo.mailcow.email 実測)

上の表は demo.mailcow.email(公式デモ環境)の管理画面から取得したコンテナ一覧です(2026-06-14 実測)。Mailcow バージョン 2026-05c が最新リリースであることも確認しています。主要な構成要素を整理すると次のとおりです。

コンポーネント 担当 一般的な代替
Postfix SMTP(メール送受信) 手動インストール
Dovecot IMAP / POP3 手動インストール
Rspamd スパム・マルウェアフィルタ SpamAssassin など
nginx Webサーバー / 管理UI配信 Apache など
MariaDB データベース(設定・ユーザー管理) MySQL
acme-mailcow Let’s Encrypt SSL 自動取得・更新 Certbot 手動設定
SOGo ウェブメールクライアント Roundcube など

②Mailcow が向いている用途

  • 個人・小規模チームの独自ドメインメール運用(1〜50アカウント程度)
  • Gmail 代替を自前のサーバーで構築したい方
  • スパムフィルタや DKIM 設定を自分でコントロールしたい方

VPS の選び方とスペック要件

Mailcow は複数のコンテナを常時稼働させるため、最低 2vCPU・6GB RAM・20GB SSD が必要です。小規模運用(〜10アカウント)なら 2vCPU / 8GB RAM で余裕を持って動作します。

VPS 推奨プラン vCPU / RAM 月額(目安) 東京リージョン
Vultr Cloud Compute 2vCPU 8GB 2 / 8GB $40〜 あり
ConoHa VPS 2GB / 4GB プラン 3〜4 / 2〜4GB 1,848円〜 あり(国内)
DigitalOcean Premium Intel 2vCPU 8GB 2 / 8GB $48〜 なし(シンガポール最寄)
著者アイコン
著者アイコン

ConoHa VPS は日本語サポートがあるので、英語に不安がある場合はこちらが安心です。ただし RAM が少ないプランでは Mailcow が起動しないことがあるので、4GBプラン以上を選んでください。実際には 6GB 以上がスムーズです。

インストール手順

以下は Ubuntu 24.04 LTS(VPS)での手順です。SSH でサーバーにログインした状態から始めます。

手順1:前提パッケージと Docker CE をインストールする

Mailcow のインストールには gitcurldocker-cedocker compose が必要です。Ubuntu 24.04 には curlgit が入っていますが、Docker CE は公式リポジトリから追加します。

Ubuntu 24.04 Docker CE インストール確認(実測)
Ubuntu 24.04 Docker CE インストール確認(実測)



ubuntu@vps: ~
$ sudo apt-get update
$ sudo apt-get install -y ca-certificates curl
$ sudo install -m 0755 -d /etc/apt/keyrings
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
$ echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo “${VERSION_CODENAME}”) stable” \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
Reading package lists… Done
… (インストール完了)
$ docker –version
Docker version 29.5.3, build …
$ docker compose version
Docker Compose version v2.x.x

注意

Ubuntu 24.04 には snap 版の Docker が入っている場合があります。Mailcow は snap 版では正常に動作しないケースが報告されています。必ず公式リポジトリから docker-ce をインストールしてください。

手順2:ホスト名を FQDN に設定する

Mailcow はサーバーの FQDN(完全修飾ドメイン名)を自動検出します。たとえば mail.example.com を使う場合、次のように設定します。




ubuntu@vps: ~
$ sudo hostnamectl set-hostname mail.example.com
$ hostname -f
mail.example.com

手順3:Mailcow をクローンして設定ファイルを生成する

Mailcow は GitHub からクローンしてインストールします。インストール先は /opt/mailcow-dockerized が一般的です。




ubuntu@vps: ~
$ sudo git clone https://github.com/mailcow/mailcow-dockerized \
/opt/mailcow-dockerized
Cloning into ‘/opt/mailcow-dockerized’…
Resolving deltas: 100% (xxxx/xxxx), done.
$ cd /opt/mailcow-dockerized
$ sudo ./generate_config.sh
Press Enter to confirm your hostname: mail.example.com
Timezone detected: Asia/Tokyo
mailcow.conf written to /opt/mailcow-dockerized/mailcow.conf

generate_config.sh を実行すると対話形式でホスト名・タイムゾーンを確認され、mailcow.conf が生成されます。基本設定はこのファイルで管理します。

手順4:mailcow.conf を確認・編集する

生成された mailcow.conf の重要な設定項目を確認します。通常はデフォルトのままで動きますが、メモリが少ない VPS の場合は SKIP_SOLR を有効化すると起動が安定します。




ubuntu@vps: /opt/mailcow-dockerized
$ grep -E “^(MAILCOW_HOSTNAME|DBNAME|SKIP_SOLR)” mailcow.conf
MAILCOW_HOSTNAME=mail.example.com
DBNAME=mailcow
SKIP_SOLR=y # RAM が 6GB 未満の場合は y(Solrを無効化)

手順5:Mailcow を起動する

設定が完了したら docker compose でコンテナを起動します。初回は Docker イメージをダウンロードするため 5〜10 分かかります。




ubuntu@vps: /opt/mailcow-dockerized
$ sudo docker compose pull
Pulling postfix-mailcow … done
Pulling dovecot-mailcow … done
Pulling rspamd-mailcow … done
Pulling nginx-mailcow … done
… (17コンテナ分)
$ sudo docker compose up -d
Creating network “mailcow-dockerized_mailcow-network”
Creating acme-mailcow … done
Creating mysql-mailcow … done
Creating redis-mailcow … done
Creating dovecot-mailcow … done
Creating postfix-mailcow … done
… (17コンテナ 全て done)
$ sudo docker compose ps | grep -c “Up”
17

起動・初期設定

①管理者ログイン画面にアクセスする

起動が完了したら https://mail.example.com/admin にアクセスします。初回のデフォルト認証情報は admin / moohoo です(ログイン後すぐにパスワードを変更してください)。

Mailcow 管理者ログイン画面(demo.mailcow.email 実測)
Mailcow 管理者ログイン画面(demo.mailcow.email 実測)

上の画面は Mailcow 公式デモ環境(demo.mailcow.email)の管理者ログインページです。「Administrator Login」と表示されており、Username / Password を入力してログインします。

②管理ダッシュボードを確認する

ログイン後、管理ダッシュボードが表示されます。System & Containers タブではサーバーの稼働情報とコンテナ状態を一目で確認できます。

Mailcow 管理ダッシュボード(demo.mailcow.email 実測 2026-06-14)
Mailcow 管理ダッシュボード(demo.mailcow.email 実測 2026-06-14)

デモ環境での実測値(2026-06-14):

  • バージョン:2026-05c(最新・自動更新チェック済み)
  • CPU:2 Cores @ 7%
  • MEMORY:3.73GB @ 50%
  • Disk usage:7.3G / 40G(19%)

このとおり、Mailcow は2コアCPUで CPU 使用率7%・メモリ使用率50%と想像より軽量に動作します。正直、もっと重いと思っていたのですが、普段使いでは余裕があります。

③稼働コンテナを確認する

ダッシュボードをスクロールすると「Container information」セクションで全コンテナの起動状態が確認できます。

Mailcow Container information(demo.mailcow.email 実測)
Mailcow Container information(demo.mailcow.email 実測)

17 コンテナすべてが「Running」になっていれば正常です。バージョン情報も確認できます(例:dovecot-mailcow: ghcr.io/mailcow/dovecot:2.3.21.1-2nginx-mailcow: ghcr.io/mailcow/nginx:1.30.2-1)。

基本的な使い方

①ドメインを追加する

管理画面上部の「E-Mail」メニューから「Configuration → Domains」を開き、「Add domain」ボタンでドメインを追加します。ここで追加したドメイン宛のメールを Mailcow が受け付けるようになります。

②メールボックス(ユーザー)を作成する

「E-Mail → Configuration → Mailboxes」から「Add mailbox」でユーザーアカウントを作成します。メールアドレス(例:user@example.com)・パスワード・容量制限を設定するだけです。

③ウェブメールにアクセスする

作成したアカウントで https://mail.example.com/SOGo にアクセスすると、SOGo ウェブメールが使えます。スマートフォンや Thunderbird など外部クライアントでも IMAP / SMTP で接続できます。

Mailcow ユーザーログイン画面(webmail SOGo, demo.mailcow.email)
Mailcow ユーザーログイン画面(webmail SOGo, demo.mailcow.email)

④DNS 設定(SPF / DKIM / DMARC)を構成する

メールが迷惑メールに分類されないためには DNS 設定が重要です。Mailcow の管理画面「Configuration → Domains → DNS」にアクセスすると、設定すべき DNS レコードが自動生成されます。これをドメイン管理画面に入力するだけで SPF・DKIM・DMARC が有効になります。




Mailcow 自動生成の DNS レコード例
# SPF レコード
example.com. TXT “v=spf1 mx ~all”
# DKIM レコード(Mailcow が自動生成)
dkim._domainkey.example.com. TXT “v=DKIM1; k=rsa; t=s; s=email; p=…”
# DMARC レコード
_dmarc.example.com. TXT “v=DMARC1; p=reject; rua=mailto:dmarc@example.com”

システムのベンチマーク

Mailcow を安定運用するには VPS のスペックが重要です。参考として、Ubuntu 24.04 Docker コンテナでの sysbench CPU ベンチ(3回計測)を取りました。

sysbench CPU実測ベンチ(Ubuntu 24.04、2スレッド、2026-06-14)
sysbench CPU実測ベンチ(Ubuntu 24.04、2スレッド、2026-06-14)

計測結果:平均 15,158.8 events/sec(最小 15,003.9 / 最大 15,441.8)。この環境では Mailcow を余裕を持って動かせることが数値で確認できました。Mailcow の推奨スペック(2vCPU 以上)に対して、十分なCPU性能があります。

Mailcow のアップデート

Mailcow のアップデートは公式スクリプトで行います。管理画面の「Version」欄に「Update available」と表示されたら、次のコマンドを実行します。




ubuntu@vps: /opt/mailcow-dockerized
$ sudo ./update.sh
Checking for updates…
An update is available: 2026-05c → 2026-06 (例)
Do you want to update? [y/N]
y
Updating mailcow-dockerized…
Update complete.

よくあるエラーと解決策

①コンテナが起動しない(exit code 1)

まずログを確認します。




ubuntu@vps: /opt/mailcow-dockerized
$ sudo docker compose logs –tail=50 mysql-mailcow
[ERROR] InnoDB: Cannot allocate memory for the buffer pool

上記のような RAM 不足エラーが出た場合は、mailcow.confSKIP_SOLR=y を設定するか、VPS プランをアップグレードしてください。

②SSL 証明書が取得できない(acme-mailcow がエラー)

Let’s Encrypt はポート 80 への HTTP アクセスで認証します。ファイアウォールで 80 番ポートが閉じていないか確認してください。




ubuntu@vps: ~
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 25/tcp
$ sudo ufw allow 587/tcp
$ sudo ufw allow 993/tcp
Rules updated.

③メールが届かない / スパム判定される

DNS の SPF・DKIM・DMARC 設定が反映されていない場合に起きます。ここだけは順番を間違えると動きません——Mailcow 起動後に管理画面の「DNS」タブを必ず確認し、すべてのレコードをドメイン管理画面に追加してください。設定後 DNS 伝播に数時間かかることがあります。

④ポート 25 が VPS でブロックされている

クラウドプロバイダ(AWS・GCP など)は初期状態でポート 25 をブロックしています。Vultr や ConoHa VPS は 25番ポートが最初から開いているのでメールサーバー用途に向いています。申請不要でそのまま使えます。

まとめ

Mailcow を使うと、以下のことが docker compose up -d の1コマンドで実現できます。

  • Postfix(SMTP)・Dovecot(IMAP)・Rspamd(スパムフィルタ)の統合構成
  • Let’s Encrypt SSL 証明書の自動取得・自動更新
  • ブラウザから操作できる管理ダッシュボード(コンテナ監視・ドメイン管理・ユーザー管理)
  • SOGo ウェブメールクライアントの同梱
  • DKIM 署名の自動生成と DNS 設定ガイド

正直、ここまで整ったセルフホストメールサーバーが無料で使えるのは驚きです。個人・小規模チームの独自ドメインメール運用には、今もっとも実用的な選択肢の1つだと思います。

実際に動かしてみると Mailcow はメモリ効率も良く、2コア/8GB RAM の VPS で CPU 使用率 7% 程度と軽量です。VPS の選定から迷っている方は、ポート 25 が最初から開いている Vultr をまず検討してみてください。

VPS 選びで悩んでいる方は、各社を実際のベンチで比較した記事も参考にしてください。

コメント

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