
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パッケージを提供しています。

Synologyで動くDockerは、コンシューマ向けの最上位モデルのPlusシリーズにしか対応していませんが、GUIによる操作の簡便性によってDockerコンテナを手軽に管理・運用できる特徴があります。しかし、複数のコンテナをリンクさせるコンテナなどを構成する場合だと、逆に手間が掛かったり使いにくい部分もあります。
そんな時に使うのが、複数のコンテナを使うDockerアプリケーションを定義・実行するDocker Composeです。
どうやらSynology NAS上でもComposeが走るようなので、今回はSynology NAS上のDockerでDocker Composeを操作する方法について解説します。
Docker Composeを使うための前準備
Synology NAS上のDockerはGUIベースで管理・運用するパッケージなので、GUI上でymlファイルを読み込ませるとかそういう機能はありません。

Docker Composeでは従来通りCUIベースのターミナルで操作する必要があります。
事前準備① Synology NASのSSH接続を有効化
Synology NASのDocker ComposeはGUIに対応していないので、ターミナル上で操作を行うためにSSHを有効にします。

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


事前準備② リモートクライアントをインストール
Synology NASにSSHでログインしてコンソールから操作
Synology上のDockerはスーパーユーザー権限で操作を行います。sudoでroot権限を取得します。
$ sudo -i
あとの使い方は通常のDocker Composeと変わりません。
docker-compose.ymlが配置されているフォルダに移動して、upコマンドを叩くと通常のDocker環境と同じようにDocker Composeを操作できます。今回の解説ではDjangoの開発環境を構成にComposeを使用します。
平行してDSM側のDocker GUIの状態も更新されるので、Conposeを使って起動したコンテナのステータスチェックや稼働状況の確認などもDSM上から確認できます
# docker-compose up -d


優秀な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には簡単に設置できるGitLabやHyper Buckupによる強力なバックアップ機能も備えているので、単なるビジネスストレージの用途以外にも開発サーバとしても優秀な製品です。