【Docker+NextCloud】とりあえず何か動かしたい人向けサーバ学習ブログ

永井
2023-09-04
2023-09-04

はじめに

今回は、「ちょっとサーバの勉強したけど何を作ったらいいかわからない」という人に向けての記事となります。
ざっくり内容としては、とりあえず動くものを作って、学習のとっかかりにしてほしい!って感じです・・・

ではさっそく!!

とりあえず目に見えるものを作ってみる

わかりやすく目に見えるもので行くとやはり、ブラウザ上で何かしら動くものがいいかもですね。
なので、Dockerを使ってNextCloudを立ち上げていきたいと思います!

Dockerを使った場合、2ステップでNextCloudを立ち上げることができます。

ステップ1: docker-compose.ymlの作成
ステップ2: 立ち上げ

以上です。めちゃめちゃ簡単にできちゃいます。

ステップ1

docker-compose.ymlを作成します。
これは、どのような構成や設定で動かすかを定義するものになります。
内容についてすべて理解できてなくてもコピペさえできれば動かせちゃいます。

docker-compose.yml
version: '3'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_PASSWORD=root
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    ports:
      - 8000:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    restart: always

コピペできましたでしょうか・・・?

軽く中身に触れると、以下の部分ではデータベースのアカウント設定を行っています。

environment:
    - MYSQL_ROOT_PASSWORD=root
    - MYSQL_PASSWORD=root
    - MYSQL_DATABASE=nextcloud
    - MYSQL_USER=nextcloud

好きな内容に変更しても大丈夫ですが、ここの情報は後で使うのでイイ感じにしておきましょう。
今回は検証用なので内容は適当です。

ステップ2

実行!!!

$ docker-compose up -d

しばらく待つと、↓こんな感じの表示がでたらOKです!

Creating nextcloud_db_1 ... done
Creating nextcloud_app_1 ... done

試しにこちらのリンクからアクセスしてみましょう。
http://localhost:8000

※もし、サーバを構築した人であれば、ポートの8000番を空けてIPアドレスでアクセスすると表示されると思います。
http://IPアドレス:8000

NextCloudの初期設定

正常にアクセスできた場合、このような初期設定の画面が出てくるかと思います。

1-Aug-31-2023-08-35-48-2000-AM

では、初期設定をしていきましょう!

ユーザ名とパスワードについては管理者としてログインするときに必要になります。
「ストレージとデータベース」では「MySql/MariaDB」を選んでください。

5-Aug-31-2023-08-38-26-2517-AM

docker-compose.ymlを本記事と同じ無いようにした人はスクショ通りに設定すれば問題無いかと思います!

記入が完了したら「インストール!!」

初期設定が終われば、NextCloudを使えるようになると思います!

2-Aug-31-2023-09-39-22-1602-AM

次の課題

本記事の目的では、学習のとっかかりにしていただくことなので、次のステップはどんな感じかお伝えできればと思います。

今回はDockerを使って簡単にNextCloudを立ち上げたかと思いますが、次のステップではDockerを使わずにサーバにNextCloudを入れてみてはいかがでしょうか。

Dockerを使わない場合、基礎的なミドルウェアで様々な設定をする必要があったりします。

例えば・・

  • データベースやApache・Nginx等をインストールする必要がある。
  • データベースではアカウントやデータベースを作成する必要がある。
  • Apache/Nginxではwebサーバとして機能するように設定する必要がある。
  • スマホ等の他の端末から接続したい場合firewallの設定をする必要がある。

などなど・・・・

Dockerがやってくれていたことを自分で行う必要があるので勉強になるかと思います!

終わりに

この記事が誰かの勉強の支えになってくれれば嬉しいです・・・・
ここまで読んでいただきありがとうございます。