はじめに
NextCloudというツールを一度利用してみたいと思ったので、ローカルのDocker環境でNextCloudを起動してみようと思います。
利用方法
Dockerをインストール済みのPCで作業を進めます。
必要なファイルの作成
Dockerプロジェクト用のフォルダを作成します。
(今回は、NextCloud-Docker
というフォルダを作成しました。)
作成したフォルダに下記のcompose.yml
と.env
ファイルを作成します。
Windows Desctop Dockerの場合文字コードと改行コードに注意(UTF-8, LFの指定がおすすめ)
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
ログの最後にDone
と表示されたら、下記のコマンドでコンテナの稼働状況を確認します。
docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
nextcloud-app-1 nextcloud "/entrypoint.sh apac…" app 27 minutes ago Up 27 minutes 0.0.0.0:8080->80/tcp
nextcloud-db-1 mariadb "docker-entrypoint.s…" db 27 minutes ago Up 27 minutes 3306/tcp
動作確認
nextcloudはローカルホストの8080でリッスンされているので、ブラウザからhttp://localhost:8080にアクセスします。
管理者アカウントの設定
上部の管理者アカウントを作成してください
の部分にユーザー名とパスワードを入力します。
後片付け
下記のコマンドでコンテナを停止し削除します。
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 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