VOLTECHNO

ガジェットとモノづくりのニッチな部分を伝えるメディア

2020年6月25日

Synology NASのDockerパッケージでDocker Composeを使用する方法

Synology NASのDockerパッケージでDocker Composeを使用する方法

Docker Composeとは、複数のコンテナを扱うDockerアプリケーションを実行・定義するツールです。Synology NASには強力なGUIベースのDockerパッケージが存在しますが、それとは別にDocker Composeを使ってコンテナを一括管理させることも可能です。

  • Synology NASのDockerでDocker Composeを使用する方法を解説
  • Synolgoy DS916+を使用
  • Docker Composeで起動したコンテナもGUIで管理可能
  • SSHで操作

SynologyのDockerパッケージでもDocker Composeが使える

SynologyのplusシリーズのNASには、DSM上で動くDockerパッケージが提供されています。

GUIベースで動作するDockerは非常に便利なツールで簡単にDockerコンテナを管理・運用することができますが、複数のコンテナをリンクさせるコンテナなどを構成する場合だと、逆に手間が掛かったり使いにくい部分が出てきます。

そんな時に使うのが、複数のコンテナを使うDockerアプリケーションを定義・実行するDocker Composeです。調べてみるとSynology NAS上でもComposeが走るようなので、今回はSynology NAS上のDockerでDocker Composeを操作する方法について解説します。

Docker Composeを使うための前準備

Synology NAS上のDockerはGUIベースで管理・運用しやすいのが大きなメリットですが、Docker Composeでは従来通りCUIベースのターミナルで操作します。GUI上でymlファイルを読み込ませるとかそういう機能はありません。

事前準備① Synology NASのSSH接続を有効化

Synology NASのDocker ComposeはGUIに対応していないので、ターミナル上で操作を行います。

SSHサービスを有効にしするために、コントロールパネルの「端末とSNMP」メニューから「ターミナルタブ」を開き「SSHサービスを有効化する」にチェックを入れます。SSH接続時のユーザー名とパスワードはDSMログイン時のアカウント情報と同じです。

SSH接続が行えるユーザーは「administrator」グループのユーザーのみと定義されているため、SSH接続を行うユーザーのグループを確認します。

コントロールパネルの「ユーザー」からSSHログインを行うユーザーを選択する。
「ユーザーグループ」タブから「administrator」グループに入っているか確認する。

事前準備② リモートクライアントをインストール

DSM上にターミナルはないので、クライアント側から接続を行うソフトウェアをインストールします。SSH接続できれば何でも良いので、Windowsなら「Poderosa」「RLogin」「Tera Team」などをインストール、Macなら初めから入っている「ターミナル」や「iTerm 2」、iOSだと「iTerminal」などを使用します。

ちなみに本記事ではTera Teamを使用して解説を進めます。

Synology NASにSSHでログインしてコンソールから操作

Synology上のDockerはスーパーユーザー権限で操作を行います。sudoでroot権限を取得します。

$ sudo -i

あとの使い方は通常のDocker Composeと変わりません。

docker-compose.ymlが配置されているフォルダに移動して、upコマンドを叩くと、通常のDocker環境と同じようにDocker Composeを操作できます。DSM側のDocker GUIの状態も更新されるので、Conposeを使って起動したコンテナのステータスチェックや稼働状況の確認などもDSM上から確認することができます。

# docker-compose up -d
端末からDocker Composeを叩いてコンテナを起動する。画像はDjango, MySQL, Nginxの3層構成のWebアプリサーバーを起動させているところ。構成自体もDocker Composeで行っている。
端末上のDocker Composeで起動したコンテナもDSMのDockerパッケージGUI上から稼働状況を確認できる。

非常に優秀なSynology NAS、開発・テスト環境としても性能を発揮

Synology NASのDockerパッケージはGUIが非常に便利で様々なコンテナを使っていますが、再構成時の設定が面倒と思い始めていたので、Composeも走ると知れたのはちょうどいいタイミングでした。

docker-compose.ymlはもちろんのこと、DockerfileやPython依存のrequirements.txtも使用できるのでSynology NASの可能性は更に広まります。今回のDocker Composeの例ではPythonのWebフレームワークDjango3.0.6の3層Webアプリケーションサーバーを構成してみましたが、数分程で構成できたので非常に満足しています。

SynologyのNASにはDockerの見やすいGUI環境や、簡単に設置できるGitLab、Hyper Buckupによる強力なバックアップ機能も備えているので、単なるビジネスストレージのほかにも開発サーバーとしても非常に優秀です。

Return Top