##利用環境
OS:CentOS7
Dockerの導入
インストール
sudo yum -y install docker
確認
docker --version
サービスの開始・自動起動
$ sudo systemctl start docker
$ sudo systemctl enable docker
sudoなし設定
# dockerグループを作成する
$ sudo groupadd docker
# ログイン中のユーザーをdockerグループに追加する
$ sudo gpasswd -a $USER docker
# Dockerを再起動する
$ sudo systemctl restart docker
# exitして再ログインすると反映される
$ exit
Docker Composeの導入
インストール
# Docker Composeの最新版をダウンロードする
# `1.25.4` の値はバージョンに応じて変更する
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# バイナリの実行権限を適用する
$ sudo chmod +x /usr/local/bin/docker-compose
確認
docker-compose --version
NextCloudのベース作成
NextCloudのコンテナを作成するディレクトリに作成、移動後作業開始
下記のdocker-compose.ymlを作成する。
version: '2'
volumes:
nextcloud:
db:
redis:
services:
db:
image: mariadb
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_VERSION=5.7
- MYSQL_ROOT_PASSWORD=root # 適当なパスワードを設定
- MYSQL_PASSWORD=root # 適当なパスワードを設定
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8080:80
depends_on:
- db
- redis
volumes:
- nextcloud:/var/www/html
restart: always
environment:
- MYSQL_HOST=db
- REDIS_HOST=redis
redis:
image: redis
restart: always
volumes:
- redis:/data
コンテナの導入
docker-compose up -d
MARIADBの設定
コンテナの内部IPを下記の方法で調べておく
DBコンテナに入る
docker exec -it nextcloud_db_1 bash
rootでmysqlに入る
mysql -u root -p
他コンテナからのアクセス用ユーザー作成
CREATE USER 'root'@'172.19.0.2' IDENTIFIED BY 'root';
CREATE USER 'root'@'172.19.0.3' IDENTIFIED BY 'root';
CREATE DATABASE IF NOT EXISTS nextcloud;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON nextcloud.* TO 'root'@'172.19.0.2' IDENTIFIED BY 'root';
CREATE TEMPORARY TABLES ON nextcloud.* TO 'root'@'172.19.0.3' IDENTIFIED BY 'root';
FLUSH privileges;
ブラウザで確認