はじめに
自宅サーバーやVPSでファイル共有・同期を行いたいなら、Nextcloudは非常に強力な選択肢です。本記事では、Dockerを使ってNextcloudをMariaDBと連携させて構築する方法を解説します。環境構築が不安な方でも、Docker Composeを使えば簡単に立ち上げることができます。
また、Nextcloudは起動後に管理画面で警告やエラーが出ることが多く、速度改善のカスタマイズも必要になる場合があります。
そのため、この記事ではそれらを見越して、永続化すべきファイルや設定ファイルを最初から外出ししておく構成にしています。
DockerでNextcloudを構築するメリットとは?
DockerでNextcloudを構築する最大の利点は、以下の3点です。
- 依存関係を気にせず構築できる
Apache、PHP、MariaDBのバージョン調整も不要 - 設定ファイルを外に出せば柔軟にカスタマイズできる
config.php
などの重要ファイルもホスト側で管理可能 - 構成をそのまま再現できる
サーバー移行やバックアップも楽に行える
このように、DockerはNextcloudを運用していくうえで非常に相性が良いです。
使用する構成と事前準備
これから構築する構成は以下の通りです。
- Docker Compose を使用
- Nextcloud + MariaDB の2コンテナ構成
- 永続化するボリュームを複数定義
- 初期設定はWeb UIから実施
前提条件
- DockerおよびDocker Composeがインストール済みであること
- 任意の作業ディレクトリで構築を行うこと
Dockerのインストールがまだのかたは、以下の記事をご覧ください。
NextCloudをDockerで構築する手順
ここからは、NextCloudをDockerで構築するための実際の手順を解説していきます。
作業ディレクトリの作成
任意のディレクトリに、nextcloud-docker
ディレクトリを作成します。
mkdir nextcloud-docker
cd nextcloud-docker
docker-compose.yml
ファイルの作成
作成したnextcloud-docker
の中に、docker-compose.yml
ファイルを作成して以下の内容を記述しましょう。
version: '3.8'
services:
db:
image: mariadb:latest
container_name: nextcloud_db
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: nextcloudpass
volumes:
- db_data:/var/lib/mysql
app:
image: nextcloud:31.0.4
container_name: nextcloud_app
restart: always
ports:
- 8080:80
depends_on:
- db
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: nextcloudpass
volumes:
- nextcloud_data:/var/www/html
- ./nextcloud/config:/var/www/html/config
- ./nextcloud/custom_apps:/var/www/html/custom_apps
- ./nextcloud/themes:/var/www/html/themes
volumes:
db_data:
nextcloud_data:
NextCloudの最新バージョンは以下のサイトで調べることができます。
H2: コンテナの起動とNextcloudへのアクセス
以下のコマンドでNextCloud環境を起動します。
docker-compose up -d
Webブラウザで http://<ホスト名またはIP>:8080
にアクセスすると、NextCloudの初期セットアップ画面が表示されます。

- ブラウザで http://サーバーIP:8080/ にアクセス!
- NextCloudの初期セットアップ画面が表示されれば成功!
- 管理者アカウントのユーザー名とパスワードを自由に設定し、「インストール」をクリックします
もし、NextCloudが表示されない場合は以下の確認をしてみてください。
docker ps
でnextcloud
とdb
コンテナが正常に動作しているかを確認- ファイアウォールでポート8080が開放されているか(
sudo ufw allow 8080
) - サーバーのIPアドレスが正しいか
まとめ:DockerでNextcloudを構築
DockerとMariaDBを使えば、Nextcloudを簡単に立ち上げることができます。
今回紹介した構成では、将来的なエラー対処や速度改善のために必要な設定ファイルを、あらかじめ永続化しておくことで、あとからのカスタマイズにも柔軟に対応できます。
特に以下のポイントは押さえておきたいところです。
- docker-compose.ymlだけで環境構築が可能
- MariaDBとの連携も自動で完了
- 設定ファイル・アプリ・テーマの永続化で柔軟な運用ができる
Nextcloudを本格的に使いこなすには、このあと表示される管理画面の警告やエラーを解消し、速度面もチューニングしていくことが大切です。
コメント