お問い合わせはこちら

NextcloudをDockerで構築する手順をわかりやすく解説

公開
DockerでのNextcloud構築手順

Dockerを使ってNextcloudを構築する方法をご紹介します。

この記事を読むことで、簡単かつ効率的にNextcloudを導入できるようになります。特に、自宅サーバーやクラウド環境でプライベートなクラウドストレージを運用したい方、IT管理者として組織内でファイル共有システムを構築したい方に役立つ内容です。

Dockerの利点を活かしながら、Nextcloudの構築から運用までをステップバイステップで解説していきます。

DockerでNextcloudを構築するメリット

Dockerを使用してNextcloudを構築することには、従来のインストール方法と比較して多くのメリットがあります。まず、環境の構築が非常に簡単で迅速になります。Dockerコンテナを使用することで、複雑なセットアップ手順を省略し、必要なコンポーネントを一括で管理できます。

また、異なるOSやハードウェア環境でも一貫した動作が保証されるため、開発環境から本番環境への移行がスムーズになります。さらに、アップデートやロールバックが容易になり、システムの保守性が向上します。Dockerの分離性により、他のアプリケーションとの競合も回避できます。

リソース管理も効率的になり、スケーラビリティも向上するため、将来的な拡張にも対応しやすくなります。これらの利点により、DockerでNextcloudを構築することで、管理者の負担が軽減され、より安定したサービス提供が可能になります。

【入門】Dockerとは?概要やメリット、インストール方法をわかりやすく解説

【入門】Dockerとは?概要やメリット、インストール方法をわかりやすく解説

Dockerは従来の仮想化にかわって、様々な開発環境で使われている技術です。非常に扱いやすく利便性の高い技術であることから、Dockerの利用は今後も広がっていくでしょう。 この記事ではDockerとは何かといった基本からメリット、インストール方法、基本的なコマンドまで解説しています。Dockerをこれから使い始めようと検討している方は、この記事を参考にして下さい。 Dockerとは?をわかりやす…

Docker環境でのNextcloudの構築手順

Docker環境でNextcloudを構築する手順は、大きく4つのステップに分けられます。

  1. DockerとDocker Composeをインストールします。
  2. 必要な設定を記述したDocker Composeファイルを作成します。
  3. 作成したファイルを使用してNextcloudコンテナを起動します。
  4. ブラウザからNextcloudにアクセスして初期設定を行います。

これらの手順を順番に実行することで、Dockerを使用したNextcloud環境を簡単に構築できます。以下では、各ステップについて詳しく説明していきます。

1.DockerとDocker Composeのインストール

DockerとDocker Composeのインストール方法は、使用するOSによって異なります。ここでは例としてUbuntuの場合のインストール手順を説明します。

①Dockerをインストールするために、まず依存関係のあるパッケージをインストールします。
以下のコマンドを実行しましょう。

sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release

②次に、以下のコマンドによりDockerの公式GPGキーを追加します。

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

③Dockerのリポジトリを登録します。以下のコマンドを実行しましょう。

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

④DockerとDocker Composeをインストールします。

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

⑤インストールが完了したら、動作確認を行います。
以下のコマンドを実行して、DockerとDocker Composeのバージョンを確認してください。

docker --version
docker compose version

これらのコマンドが正常に実行され、バージョン情報が表示されれば、インストールは成功です。

インストールが成功した時の表示

これでDockerとDocker Composeを使用する準備が整いました。

2.Docker Composeファイルの作成

インストールできたら、Docker Composeファイルを作成します。まずは適切なディレクトリを作成しましょう。ここでは例として以下のようにします。

mkdir nextcloud-docker
cd nextcloud-docker

作成したフォルダの中に、docker-compose.ymlというファイルをエディタで作成します。このファイルには、Nextcloudサービスとデータベース(通常はMariaDBまたはMySQL)の設定を記述します。Nextcloudのイメージ、ポート設定、環境変数、ボリュームマウントなどを指定しましょう。

例えば以下のように書きます。

services:
db:
image: mariadb
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=strong_root_pass
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=strong_db_pass

app:
image: nextcloud
restart: always
ports:
- "8080:80"
volumes:
- nextcloud_data:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=strong_db_pass

volumes:
db_data:
nextcloud_data:
docker-compose.ymlの設定

3.Nextcloudの起動

Docker Composeファイルを作成したら、いよいよNextcloudを起動します。ターミナルで、Docker Composeファイルが存在するディレクトリに移動し、以下のコマンドを実行します。

docker compose up -d

docker-compose.ymlに書かれたサービス(この例ではappとdb)がStartedと出たら成功です。以下のコマンドで状態を確認しましょう。

docker compose ps

STATUSの列が「Up ~ minutes」となっていれば正常に起動できています。
ブラウザでアクセスするとNextcloudの初期画面が起動します。

Nextcloudの初期画面

4.Nextcloudの初期設定

Nextcloudの起動が完了したら、ブラウザでアクセスして初期設定を行います。まず、管理者アカウントを作成します。

①最初の画面で管理者のユーザー名とパスワードを入力し、インストールを押します。

ユーザー名とパスワード入力画面

②推奨アプリの設定を行います。希望するアプリを選んで「推奨アプリをインストール」を押します。必要なければ「スキップ」を押します。

推奨アプリの画面

③これでNextcloudの利用を開始できる状態になりました。

Nextcloud開始画面

Docker環境でのNextcloudの運用方法

Docker環境でNextcloudを運用する際には、データの永続化やバックアップが重要です。
ここからはデータの永続化やバックアップの方法について解説します。

データの永続化

Dockerを使用してNextcloudを運用する際、データの永続化は非常に重要です。

データの永続化とはDockerボリュームを活用することで、コンテナが削除されてもデータを保持できるようにすることです。永続化の設定は、Docker Composeファイル内に以下のようなvolumesセクション記述します。

volumes:
db_data:
nextcloud_data:

そして、各サービスセクションに以下のように記述します。

db:
volumes:
- db_data:/var/lib/mysql
app:
volumes:
- nextcloud_data:/var/www/html

これにより、Nextcloudのデータがホストマシン上に保存されます。
永続化されたボリュームは、以下のコマンドで確認できます。

docker volume ls

この方法を使えば、コンテナの更新や再作成時にもデータが失われることはありません。

データ永続化の設定画面

バックアップとリストア

Docker環境でのNextcloudのバックアップは、データの安全性を確保する上で非常に重要です。バックアップ方法としては様々なものがありますが、Dockerボリュームのデータをtar形式で圧縮し、安全な場所に保存することが最もシンプルです。

例えば、以下のコマンドでデータのバックアップを作成できます。このコマンドは、Nextcloudのデータをtar形式で圧縮し、現在のディレクトリに保存します。

docker run --rm -v :/data -v "$(pwd)":/backup <バックアップ用のイメージ> tar czf /backup/.tar.gz -C /data .
例:
docker run --rm -v nextcloud-docker_nextcloud_data:/data -v $(pwd):/backup alpine tar czf /backup/nextcloud_data_backup.tar.gz -C /data .

また、データベースのバックアップは以下のようにします。

docker compose exec -T mariadb-dump -u -p"" > .sql
例:
docker compose exec -T db mariadb-dump -u nextcloud -p"strong_db_pass" nextcloud > db_backup.sql

リストアは、バックアップしたデータを元の場所に戻す作業です。障害発生時には、以下のコマンドでデータとデータベースのリストアを行います。

docker run --rm -v :/var/www/html -v "$(pwd)":/backup \
<リストア用のイメージ> bash -c "cd /var/www/html && tar xvf /backup/.tar.gz --strip 1"
docker compose exec -T mariadb -u -p""
< .sql
例:
docker run --rm -v nextcloud_docker_nextcloud_data:/var/www/html -v "$(pwd)":/backup ubuntu bash -c "cd /var/www/html && tar xvf /backup/nextcloud_data_backup.tar.gz --strip 1"
例:
docker compose exec -T db mariadb -u nextcloud -p"strong_db_pass" nextcloud < db_backup.sql

このプロセスにより、バックアップデータを元のDockerコンテナに復元できます。

バックアップデータの復元プロセス

定期的なバックアップと、リストア手順の確認は、データ損失のリスクを最小限に抑えるために重要です。

まとめ

Dockerを使用してNextcloudを構築することで、簡単かつ柔軟なクラウドストレージ環境を手に入れることができます。

インストールから初期設定、運用まで一連の流れを解説しました。Docker環境での構築は、従来の方法と比べて格段に簡単で、環境の移行や更新も容易です。データの永続化やバックアップ、リストアの方法を押さえておくことで、安全かつ効率的な運用が可能になります。

Nextcloudを使いこなすことで、プライバシーを守りながら便利なクラウドストレージを活用できるでしょう。

Nextcloud でクラウドストレージをつくってみた  ~ サーバー構築編 ~

Nextcloud でクラウドストレージをつくってみた ~ サーバー構築編 ~

中小企業において、「テレワーク」や「働き方改革」などの文脈で、クラウド上に簡単にファイルを保存したり共有できる、クラウドストレージへの関心が高まっています。サブスクリプションで提供されているストレージサービスを、普段から利用されている方も多いのではないでしょうか。これらのサービスは容量に応じた月額料金が設定され、不特定多数のユーザーで同一の基盤を使用するケースが一般的ですが、法人利用の場合はコスト…