UbuntuのDockerで「Nextcloud+mysql」を運用する方法

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

Linux UbuntuのDockerで「Nextcloud+mysql」を個人サーバーで運用する方法を紹介します。更に、Dockerコンテナの永続化についても解説します。

この記事の読者層

LinuxユーザーがDockerを利用してNextcloudを利用したい方

目次

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

過去の記事で仮想環境プラットフォーム「Docker」をLinux Ubuntuにインストール方法を紹介しました。今回は、NextcloudをDockerでインストールする方法を紹介致しました。

Nextcloudの利用方法に関しては以下の記事をご参照下さい。

MacOS上で利用する仮想環境プラットフォーム「Docker Desktop for mac」 インストール方法の紹介は、以下の記事をご参照下さい。

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

Dockerの環境
  • Docker (Ubuntu 18.04 LTS)
    バージョン 20.10.21
  • Nextcloud
    バージョン 25.0.1 (Nov. 3, 2022)
  • mySQL
    バージョン 5.7

mySQLとnextcloudのイメージのダウンロード

以下のDockerの公式イメージからmysqlとnextcloudのイメージをダウンロードします。

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

docker pull mysql
docker pull next cloud

次に、doker-compose用の定義ファイルを作成します。

version: '3'
volumes:
  db:
  app:

services:
  db:
    restart: always
    image: mariadb
    container_name: db-container
    ports:
      - 5432:3306
    expose:
      - 5432
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=rootpass
      - MYSQL_PASSWORD=userpass
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_TCP_PORT=5432

  app:
    restart: always
    container_name: nextcloud-app
    image: nextcloud
    volumes:
      - ./app:/var/www/html
    ports:
      - 12345:80
    depends_on:
      - db
    environment:
      - MYSQL_PASSWORD=userpass
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db:5432

(1)既存のmysqlのポート番号3306は本体サーバー上で使用されているため、ポート番号5432を使用する。

mysqlのデータベース側「ports: 5432:3306」として、外部通信「expose: 5432」で宣言します。

   nextcloud側でポート番号5432を利用したmysqlをりようするため環境変数を「MYSQL_HOST=db:5432」

とします。

Dockerイメージの永続化

最終的に、以下のコマンド「docker-compose up -d」を入力してバックグラウンドでスタートして終了です。

ここで、エラーがでないか「docker-compose up 」としてフォアグラウンド処理で確認してみるのも良いかと思います。

% docker-compose up -d
[+] Running 3/3
 ⠿ Volume "user_app"  Created                                                                                              0.0s
 ⠿ Container nextcloud-app      Started                                                                                              0.3s
 ⠿ Container mysql-container    Started
永続化方法

% docker-compose up -d

でコマンド入力することで、永続化できます。コンピューターを再起動しても、この設定でDockerイメージ再構築してくれます。

ブラウザからアクセス

その後、適当なSafariなどのブラウザ上のURLへ「http://localhost:12345」を入力すると以下のようにNextcloudが起動します。

こちらクリックしてMySQLのデータベース設定を入力しインストールします。

ここでは以下のように設定されているため、入力も同様に行います。

コンテナ内に入る方法

Docker-composeでのコンテナを確認すると2つのコンテナが確認できます。

% sudo docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
mysql-container     "docker-entrypoint.s…"   mysql               running             0.0.0.0:3309->3306/tcp, :::3309->3306/tcp
nextcloud-app       "/entrypoint.sh apac…"   app                 running             0.0.0.0:8080->80/tcp, :::8080->80/tcp

何か問題が起こった場合には、データベースの設定に問題がある場合があります。

この場合、コンテナイメージに入って修正します。

Docker composeでnextcloud-appを起動するためには、「app」にて以下のようにコマンド入力します。

sudo docker compose exec app bash

/var/www/html/config 内の「confi.php」のデータベース内を確認します。

Docker composeの停止

Composeの停止は以下のコマンドでできます。このとき、networkと2つのコンテナが停止します。

sudo docker compose down
[+] Running 3/3
 ? Container nextcloud-app    Removed                                                                                                  1.4s
 ? Container mysql-container  Removed                                                                                                  0.1s
 ? Network user_default     Removed

まとめ

本記事のまとめ

本記事のまとめは、

Linux UbuntuのDockerで「Nextcloud+mysql」を運用する方法インストール方法を紹介しました。

関連リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次