はじめに
NextCloudというツールを一度利用してみたいと思ったので、ローカルのDocker環境でNextCloudを起動してみようと思います。
利用方法
Dockerをインストール済みのPCで作業を進めます。
必要なファイルの作成
Dockerプロジェクト用のフォルダを作成します。
(今回は、NextCloud-Docker
というフォルダを作成しました。)
作成したフォルダに下記のdocker-compose.yml
と.env
ファイルを作成します。
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
# 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
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にアクセスします。
すると、下記のような画面が表示されれば正常にコンテナが起動しています。
管理者アカウントの設定
上部の管理者アカウントを作成してください
の部分にユーザー名とパスワードを入力します。
データベースの設定
ストレージとデータベース▼
を選択して、ストレージの設定を行います。
上記の画面が表示されたら、MySQL/MariaDB
を選択します。
表示された設定項目に下記の内容を設定します。
- データベースのユーザー名
docker-compose.ymlで指定したMYSQL_ROOT_PASSWORDの値を設定 - データベースのパスワード
docker-compose.ymlで指定したMYSQL_PASSWORDの値を設定 - データベース名
docker-compose.ymlで指定したMYSQL_DATABASEの値を設定 - データベースのホスト名(デフォルトでは「localhost」と表示されています。)
docker-compose.ymlで指定したデータベース用コンテナ名とそのデータベースが使用するポート番号を設定
MySQLのデフォルトポートは3306
推奨アプリをインストール
という項目はチェックボックスをつけたままにします。
セットアップを完了します
を選択して、作業を継続します。
設定後の動作確認
セットアップが完了すると下記の画面が表示されます。
最後の画面まで遷移して、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実行時に利用可能
参考ページ
最後に
AWS上で動作させてみたいです。
EC2+S3で動作させる方法やECSを利用してコンテナを実行するのも試してみたいです。
S3にデータを置く方法