LoginSignup
24
26

More than 3 years have passed since last update.

NextcloudをDockerで構築する手順

Posted at

はじめに

NextCloudというツールを一度利用してみたいと思ったので、ローカルのDocker環境でNextCloudを起動してみようと思います。

利用方法

Dockerをインストール済みのPCで作業を進めます。

必要なファイルの作成

Dockerプロジェクト用のフォルダを作成します。
(今回は、NextCloud-Dockerというフォルダを作成しました。)
作成したフォルダに下記のdocker-compose.yml.env ファイルを作成します。

docker-compose.ymlファイル
version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${ENV_MYSQL_ROOT_PASSWORD}  # .envファイルに環境変数を設定
      - MYSQL_PASSWORD=${ENV_MYSQL_PASSWORD}  # .envファイルに環境変数を設定
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    restart: always
.envファイル
# docker-compose内で利用する環境変数をここで設定します。
# 下記2つの環境変数に、適当な文字列を設定してください。

ENV_MYSQL_ROOT_PASSWORD=root
ENV_MYSQL_PASSWORD =root

Docker Composeコマンドで環境を構築し起動する。

下記のコマンドを実行します。

実行コマンド
docker-compose up -d

upコマンドの実行結果
実行結果
Creating network "nextcloud-docker_default" with the default driver
Creating volume "nextcloud-docker_nextcloud" with default driver
Creating volume "nextcloud-docker_db" with default driver
Pulling db (mariadb:)...
latest: Pulling from library/mariadb
83ee3a23efb7: Pull complete
db98fc6f11f0: Pull complete
f611acd52c6c: Pull complete
aa2333e25466: Pull complete
f53ac4b825fd: Pull complete
c20afcf9b055: Pull complete
54c5dc6dcf19: Pull complete
b1c71d744483: Pull complete
863a8cc01d1c: Pull complete
5d1a793b093f: Pull complete
477cd2b3eba8: Pull complete
402454543166: Pull complete
Digest: sha256:8040983db146f729749081c6b216a19d52e0973134e2e34c0b4fd87f48bc15b0
Status: Downloaded newer image for mariadb:latest
Pulling app (nextcloud:)...
latest: Pulling from library/nextcloud
a076a628af6f: Pull complete
02bab8795938: Pull complete
657d9d2c68b9: Pull complete
f47b5ee58e91: Pull complete
2b62153f094c: Pull complete
60b09083723b: Pull complete
1701d4d0a478: Pull complete
bae0c4dc63ea: Pull complete
a1c05958a901: Pull complete
5964d339be93: Pull complete
1319bb6aacaa: Pull complete
71860efe761d: Pull complete
c5a84dbdd6a5: Pull complete
9336be8ca157: Pull complete
97d64e75bd85: Pull complete
f0f1f417f8ee: Pull complete
4a826539f3e2: Pull complete
3b2254795025: Pull complete
7a56bf6d9f42: Pull complete
b77ec330333f: Pull complete
Digest: sha256:936daec8aca034e035f15db35fbc7e135514bf4b9bf92f034ebc54f2b4b826f3
Status: Downloaded newer image for nextcloud:latest
Creating nextcloud-docker_db_1 ... done
Creating nextcloud-docker_app_1 ... done

ログの最後にDoneと表示されたら、下記のコマンドでコンテナの稼働状況を確認します。

コンテナ確認コマンド
docker-compose ps
psコマンド実行結果
         Name                       Command               State          Ports        
--------------------------------------------------------------------------------------
nextcloud-docker_app_1   /entrypoint.sh apache2-for ...   Up      0.0.0.0:8080->80/tcp
nextcloud-docker_db_1    docker-entrypoint.sh mysqld      Up      3306/tcp            

動作確認

nextcloudはローカルホストの8080でリッスンされているので、ブラウザからhttp://localhost:8080にアクセスします。

すると、下記のような画面が表示されれば正常にコンテナが起動しています。
image.png

管理者アカウントの設定

上部の管理者アカウントを作成してくださいの部分にユーザー名とパスワードを入力します。

データベースの設定

ストレージとデータベース▼を選択して、ストレージの設定を行います。

image.png

上記の画面が表示されたら、MySQL/MariaDBを選択します。

表示された設定項目に下記の内容を設定します。

  • データベースのユーザー名
    docker-compose.ymlで指定したMYSQL_ROOT_PASSWORDの値を設定
  • データベースのパスワード
    docker-compose.ymlで指定したMYSQL_PASSWORDの値を設定
  • データベース名
    docker-compose.ymlで指定したMYSQL_DATABASEの値を設定
  • データベースのホスト名(デフォルトでは「localhost」と表示されています。)
    docker-compose.ymlで指定したデータベース用コンテナ名とそのデータベースが使用するポート番号を設定
    MySQLのデフォルトポートは3306

推奨アプリをインストールという項目はチェックボックスをつけたままにします。

セットアップを完了しますを選択して、作業を継続します。

設定後の動作確認

セットアップが完了すると下記の画面が表示されます。

画面1.png

画面2.png

画面3.png

画面4.png

画面5.png
最後の画面まで遷移して、Nextcloudの利用を開始するを選択します。

色々試してみる

ローカル環境で動作しているので、好きなようにいじり倒します!!

後片付け

下記のコマンドでコンテナを停止し削除します。

コンテナ全削除コマンド
docker-compose down --rmi all --volumes

--rmi all --volumesを指定する事で、
・コンテナ止める
・ネットワーク削除する
・ボリューム削除する
・イメージ削除する
を同時に行います。

全削除コマンド実行結果
Removing nextcloud-docker_app_1 ... done
Removing nextcloud-docker_db_1  ... done
Removing network nextcloud-docker_default
Removing volume nextcloud-docker_nextcloud
Removing volume nextcloud-docker_db
Removing image mariadb
Removing image nextcloud

Dockerの環境確認(自分用メモ)

ボリュームの確認方法

下記コマンドでボリュームの一覧を確認する事ができる。
docker volume ls
実行結果内に「カレントフォルダ名_コンテナ名」のボリュームが存在する事が確認できます。
各ボリュームの詳細情報を確認するためには下記のコマンドを実行します。

docker volume inspect nextcloud-docker_db
docker volume inspect nextcloud-docker_nextcloud

ボリュームのマウント状況の確認

下記コマンドでコンテナの情報をtextファイルに出力
docker inspect nextcloud-docker_app_1 > inspect_nextcloud-docker_app_1.txt
docker inspect nextcloud-docker_db_1 > inspect_nextcloud-docker_db_1.txt
mountと表示されている部分にボリュームの情報が表示されている。

ネットワークの確認方法

下記のコマンドを実行してDocker上のネットワーク一覧を表示します。
docker network list
ネットワーク名を指定していない場合、「カレントフォルダ名_default」という名前のネットワークで設定されています。
詳細な情報を確認したい場合はinspectコマンドを利用します。

docker network inspect nextcloud-docker_default

イメージの情報確認

docker-compose imagesで情報を表示します。
docker上の全てのイメージを確認するためには下記のコマンドを実行します。
docker images

ドライランする方法

--dry-runを付与する。
run実行時に利用可能

参考ページ

Dockerのnextcloudページ

最後に

AWS上で動作させてみたいです。
EC2+S3で動作させる方法やECSを利用してコンテナを実行するのも試してみたいです。
S3にデータを置く方法

24
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
26