プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

QNAP の Container Station で Docker Compose を使ってみる

今のところメール環境として Rainloop を使っているんですが、こちらの記事に書いたように、昨年あたりからどうも開発が止まってしまったようです。なので、そろそろ他のものに替えたいなと思っているところです。

ググると、 ブラウザで動作する(web-based などとも表記されますね)メールクライアントのソフトウェア自体はいろいろとあるんですが、デモ環境の提供が無かったり、場合によってはスクリーンショットも不十分だったりして、なかなか調べてるだけだとこれだ!と決められません。

ということで、昨今は Docker でイメージが提供されていることも多いので、 QNAP の Container Station で簡単にサーバーを立ち上げて実際にいろいろと試してみることにしました。ただ、この手のメールクライアントの場合、 DB を使ったりする場合も多く、 Docker Compose での起動方法が示されていることも多々あります。

ということで、 QNAP の Container Station で Docker Compose をどう使えばよいのか知らなかったので、試してみたことをメモっておきます。

  • TS-251+
  • QTS 5.0.1.2425
  • Container Station 2.6.7.44

やり方

QNAP の Container Station って Docker のコンテナを実行するだけだと思い込んでいたので、最初はなかなかやり方がわかりませんでしたが、下記の記事を見つけて、読んでみると、実に簡単にできることに気づきました。

Ultimate QNAP Docker Compose and Container Station Guide [2023] | SHB

なお、 Container Station を既に使っていれば、必要なのは上記の記事中の『7. Create Compose Stack with Container Station』の部分だけです。まあ、これとほぼ同じになりますが、一応手順を書いておきます。

まずは、 QNAP の管理画面にログインして、 Container Station を起動します。次に『作成』を選択します。

この画面の右上にある『アプリケーションの作成』ボタンを押します。すると、下記のようなダイアログが表示されます。

まさに、この画面で Docker Compose の yaml ファイルの内容を入力する形になります。

アプリケーション名は、 Container Station のコンテナ名(アプリケーション名)として表示される名前になります。 YAML の部分は docker-compose.yml の内容になります。

たとえば、 Cypht というブラウザベースのメールクライアントソフトを試したときは、 docker hub の内容を参考にして、下記のように設定しました。

なお、画面下にある『YAMLを検証』ボタンを押すと、入力した yaml が検証されて、問題が無ければ緑のチェックマークが表示されます。

あとは、『作成』ボタンを押すと、必要なイメージのダウンロードが始まります。進捗状況は、右上のアイコンをクリックすると、

のように表示することができます。

アプリケーションの作成が完了すると(右上にあるバックグラウンドタスク数を表す数字がなくなると)、コンテナが起動された状態になっているはずです。例えば、 Contaienr Station の『概要』を選択すると、

のように、2つのコンテナが実行されており、それをまとめたアプリケーション(先ほど入力した testcypht という名前のアプリケーション)も確認することができます。

実に簡単ですね。

ボリュームの場所

Docker Compose の YAML を入力する際に、永続データを管理するためにボリュームを設定しているところがあると思います。上記の例だと

services:
  db:
    image: mariadb:10
    volumes:
      - ./db:/var/lib/mysql
  (中略)
  cypht:
    image: sailfrog/cypht-docker:latest
    volumes:
      - ./cypht/users:/var/lib/hm3/users

の部分ですね。ローカルホスト側のカレントディレクトリ以下のディレクトリを指定しているけど、 QNAP の場合って実際はどこになるんだろうか?と疑問がわきます。

答えは簡単で、一番最初に Container Station をセットアップした際に指定したフォルダ配下の

application/アプリケーション名

以下になります。

たとえば、いまの環境だと Container Station のフォルダは qnapData/container-station-data なので、下記のように

qnapData/container-station-data/application 以下に作成されています。なるほどね。

なお、アプリケーションの作成時に入力した YAML の内容も、ここのフォルダに docker-compose.yml として保存されています。

Container Station 思っていた以上に便利かも。

参考

QNAP で Docker-compose を使う(Applicationを実行する)

How to use Container Station 2? | QNAP

docker-compose について

Docker入門(第六回)〜Docker Compose〜 | さくらのナレッジ