NextcloudをUbuntuのDockerでインストールする方法

この記事は 3 分で読めます。
概要

Ubuntuの仮想環境プラットフォーム「Docker」において、Nextcloudを永続化でインストールする方法を紹介します。DockerHubと呼ばれるイメージファイルをダウンロードして環境構築します。

この記事の読者層

Nextcloudを使いたい方

Nextcloudを自宅サーバーで簡単インストールしたい方

NextcloudをubuntuのDocker上で構築する方法

自宅サーバーや独自サーバーを立てたい方向けにオススメのファイルサーバーとしてNextcloudがあります。このソフトはオープンソースソフトであるため、無料で「dropbox」などのようにインターネットのどこからでも利用できるありがたいツールです。利用できるファイル容量はHDD/SSDの容量まで使えることから容量は無限大です。

本記事では、このNextcloudを簡単にインストールする方法として、仮想環境プラットフォーム「Docker」上で構築する方法を今回紹介します。

「Docker」については、過去の記事でLinux Ubuntu, WindowsのWSL, MacOS上に仮想環境ソフト「Docker」をインストールする方法を紹介致しました。

それぞれのOSでの「Docker」のインストール方法は以下の記事をご参照下さい。

本記事では、Dockerを利用して「Nextcloud」をUbuntu上で構築する方法を示します。

今回使用したDockerの環境は以下のようになります。

Dockerの環境
  • Docker (Ubuntu 18.04 LTS以降)
    バージョン 20.10.21
  • Nextcloud
    バージョン 25.0.1 (Nov. 3, 2022)
  • DB
    SQLite3 (Nextcloudイメージ内に既にインストール済み)

Dockerイメージのダウンロード

様々なDockerイメージは多くのユーザーにより「docker Hub」上で以下で配布されています。

https://hub.docker.com/

その中から、以下のDockerの公式イメージ「docker Hub」からnextcloudのイメージをダウンロードします。

https://hub.docker.com/_/nextcloud/

Nextcloudのデーターベースに関する注意点

このDocker Hub の Nextcloud はバックエンド(データベースサーバー)に SQLite3 を使っています。
このデータベースアプリはデスクトップアプリを利用したファイル同期には向かないようなので、本番運用には使用しないほうが無難です。

本番で利用する場合は、本格的なデータベース「mySQL」か、「mariaDB」を利用することをお勧め致します。LinuxとmacOSでmySQLでnextcloudを利用される方は以下の記事をご参照ください。

Docker用Nextcloudイメージファイルのダウンロード

Ubuntuのターミナル上から以下のDocker pullコマンドを実行して、Dockerのイメージをダウンロードします。

% sudo docker pull nextcloud
Using default tag: latest
latest: Pulling from library/nextcloud
a603fa5e3b41: Pull complete
c428f1a49423: Pull complete
156740b07ef8: Pull complete
fb5a4c8af82f: Pull complete
25f85b498fd5: Pull complete
9b233e420ac7: Pull complete
fe42347c4ecf: Pull complete
546eb18c40c6: Pull complete
6f9832512fc3: Pull complete
b41b8e6bd463: Pull complete
a9efb162a08f: Pull complete
8c1c69b26902: Pull complete
0ff1edc4d072: Pull complete
76247fcd87ee: Pull complete
9820d9d14bfa: Pull complete
ef5fdd407ba6: Pull complete
1af081fd7cab: Pull complete
da302cbbb406: Pull complete
936f47078383: Pull complete
235245540698: Pull complete
Digest: sha256:ff3a3aadd0154a7e2bbbeaaaf2c49d98af2b5e236930fea9bad6b3b58d5eac4a
Status: Downloaded newer image for nextcloud:latest
docker.io/library/nextcloud:latest

Nextcloudのイメージがダウンロードされているかは以下のコマンド「Docker images」で確認することができます。

% sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
nextcloud    latest    eff70b1472d7   2 days ago   994MB

ここで、nextcloudのimage (947MB) がダウンロードされていることを確認できました。

Nextcloudのコンテナ化

実際に動かすには、以下のコマンドを入力して動作させます。

%  sudo docker run -d -p 8080:80 nextcloud
28e461bd7bb3c9d78f12b7997e79bae629ba90fa039fee403cf4a7ef2a740b4d

ここで、ポート番号を変えておきます。80番ポートを8080ポートにしておきます。

注意

試しに80番ポートを使用したりすると80番ポートは既に使用されていますとエラーがでます。

 sudo docker run -d -p 80:80 nextcloud
28e461bd7bb3c9d78f12b7997e79bae629ba90fa039fee403cf4a7ef2a740b4d
docker: Error response from daemon: driver failed programming external connectivity on endpoint cranky_wilson (2200adebf10fc14d6458d17385fcc0a3f34528647de61c56c32b27f0bc69e73b): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in usedocker: Error response from daemon: driver failed programming external connectivity on endpoint cranky_wilson (2200adebf10fc14d6458d17385fcc0a3f34528647de61c56c32b27f0bc69e73b): 
Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use.

その後、適当なブラウザ上のURL「http://domain-name:8080」と入力すると、以下のようにブラウザ上でNextcloudが起動します。

Nextcloudコンテナの状況確認

コンテナの起動状況は以下のdocker container ls コマンドで確認できます。(Docker psコマンドでも同様です。)

sudo docker container ls
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                   NAMES
28e461bd7bb3   nextcloud   "/entrypoint.sh apac…"   2 hours ago   Up 2 hours   0.0.0.0:8080->80/tcp, :::8080->80/tcp   mystifying_beaver

ここで、STATUSが「UP」になっていれば、Imageがマウントされていることが分かります。

上記でCONTAINER ID「28e461bd7bb3」を確認してから、仮想環境内に入ってみます。

$ sudo docker exec -it 1d79cfe4231b /bin/bash
root@1d79cfe4231b:/var/www/html#

Nextcloudはlsコマンドで確認できるます。実際に/var/www/htmlフォルダ内の中身をみると、Nextcloud用のパッケージがインストールされていることがわかります。

root@1d79cfe4231b:/var/www/html# ls
3rdparty  apps	       core	    data	index.php  ocm-provider  public.php  robots.txt  version.php
AUTHORS   config       cron.php     dist	lib	   ocs		 remote.php  status.php
COPYING   console.php  custom_apps  index.html	occ	   ocs-provider  resources   themes

マウントしたNextcloudイメージのversionはこのフォルダ内の Version.phpファイルから、

Version 25.0.1 November 3 2022

であることが読み取れます。

また、コマンドプロンプトが確認できたら今回のphpの構成バージョンを以下のように確認してみます。

ちなみに、/var/html/www/dataファイルがNextcloudのデータ保管場所となります。

# php -v
PHP 8.1.13 (cli) (built: Nov 29 2022 02:35:33) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.13, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.13, Copyright (c), by Zend Technologies

Dockerのイメージ内から出るときは、exitコマンドで抜けられます。

Dockerの仮想環境を停止する方法

Dockerの停止の仕方は、docker stop containerID(=「28e461bd7bb3」)です。以下のようにタイプすると停止処理が開始されます。

$ sudo docker stop 28e461bd7bb3
28e461bd7bb3

再度、docker psコマンドを入力するとコンテナ内のイメージファイルが見えなくなります。

$ sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

Nextcloudのクライアントをインストール

サーバーの設定は上記の手順で終了致しました。次にクライアントをインストールします。クライアントとして想定されるOSはWindowsとmacOSと思われます。このため、それぞれのOSでのインストール方法を紹介します。

Nextcloudのページから、デスクトップクライアントをダウンロードください。

ここから、クライアントソフトをダウンロードできましたら、クライアントソフトのインストール方法は、以下の記事をご参照ください。

SSHとしてインストールする方法

Docker+SSHとしてインストールする方法を次回紹介します。

まとめ

本記事のまとめ

本記事のまとめは、

LinuxのDockerでNextcloudをインストール方法を紹介しました。

関連リンク

本記事のまとめ

本記事のまとめは、

MacOSのDockerでNextcloudをインストール方法を紹介しました。

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です