Docker非対応のSynologyにDockerをぶち込む

投稿 2022年8月28日

更新 2023年7月30日

専門用語の数:

Docker非対応のSynologyにDockerをぶち込む

~ 目次 ~

はじめに

Dockerのインストール

Dockerデーモン起動設定

Docker構成ファイルの詳細

DSMのアップデートで起動不可になる可能性

パッケージセンターからの手動インストールは不可?

「DSM7.2-64570」の場合

参考リンク

まとめ

はじめに

SynologyのパッケージにはDockerが存在します。

※DSM7.2から、「Container Manager」という名前に変更された模様


ただし使用できるかは機種によります。

SynologyのDockerパッケージ対応機種一覧

SynologyのContainer Managerパッケージ対応機種一覧


今回はDocker非対応の「Synology DS218play」に、

「Docker」を・・・ぶち込みます!

製品型番 DS218play
DSMバージョン DSM 7.1-42661 Update 4

※システムに関するところをいじるので、

 実施する場合は自己責任でお願いします。

Dockerのインストール

アーキテクチャの確認

インストールするSynologyのアーキテクチャを、以下コマンドで確認します。

uname -m

私の場合は「aarch64」でした。

Dockerのダウンロード

確認したアーキテクチャのDockerのバイナリのURLを確認します。

※バージョンは特に理由がなければ最新で大丈夫です。

aarch64のDockerバイナリ


確認したURLからダウンロードします。

私の場合は「aarch64」の「docker-20.10.17.tgz」をダウンロードします。

curl https://download.docker.com/linux/static/stable/aarch64/docker-20.10.17.tgz -o /tmp/docker.gz

Dockerバイナリの配置

ダウンロードしたバイナリファイルを配置します。

tar xzvf /tmp/docker.gz -C /tmp mv -f /tmp/docker/* /usr/local/bin

Dockerデーモン構成ファイル

Dockerデーモン構成ファイルを作成します。

mkdir -p /etc/docker vi /etc/docker/daemon.json

「/etc/docker/daemon.json」には、以下のように記述します。

{   "data-root": "/volume1/@docker/lib",   "registry-mirrors" : [],   "storage-driver" : "vfs",   "bridge": "none" }

Dockerのルートディレクトリを作成します。

mkdir -p /volume1/@docker/lib

Dockerデーモン起動

dockerデーモンを起動します。

dockerd &

Docker起動確認

ここまでくれば、dockerコマンドが使用できるはずです。

一般的なdockerコマンドでエラーが出なければ成功です。

docker ps

Dockerデーモン起動設定

手動でデーモン起動が確認出来たら、自動で起動できるように設定します。


DSMのコントロールパネルから、タスクスケジューラーを開きます。

「作成」→「トリガーされたタスク」→「ユーザー指定のスクリプト」

全般タブ

タスク お好きな名前
ユーザー root
イベント ブートアップ
プリタスク -
有効 チェック

タスク設定タブ

通知 お好きなように
コマンドを実行 dockerd &

すでに別のブートアップタスクがあるのであれば、

コマンドの最終行にdockerdコマンドを追記してください。


ここまで来たら、もうDocker完成です。

Docker構成ファイルの詳細

上記で使用した「/etc/docker/daemon.json」

dockerデーモンの設定は、dockerdコマンド自体のオプションでも指定はできます。


やっていることは同じのため、設定ファイル基準で以下にまとめます。

設定項目 説明
data-root rootディレクトリの指定
registry-mirrors キャッシュレジストリURLを指定
storage-driver ファイルシステムを指定
bridge デフォルトのnetworkを指定

パッケージセンターからの手動インストールは不可?

パッケージセンターには、手動インストールができるところがあります。

公式ダウンロードセンターから、パッケージファイルがダウンロードできます。


近しい機種(DS218+)のDockerをダウンロードして、

手動インストールを試してみましたが、無理でした。

※以下のようなメッセージが出ました


「このパッケージは、DisStationのプラットフォームではサポートされていません。

または、現在DSMバージョンと互換性がありません。」

DSMのアップデートで起動不可になる可能性

DSMアップデートを行うことで、dockerdコマンドが失敗するようになることがあります。


Docker構成ファイルで作成した「daemon.json」は、

DSMバージョンにあった設定を行う必要があるようです。


そりゃ、非対応DSMにぶち込んでいるので、何かは起きますよね。


できる限りDSM最新バージョンで起動できる設定を、記載していく予定です。

※この記事を書く前ですが、一回変更しています。

「DSM7.2-64570」の場合

詳細は省略してコマンドだけ記載します。

※2023/07/15追記


{   "data-root": "/volume1/@docker/lib",   "registry-mirrors" : [],   "storage-driver" : "vfs",   "bridge": "" }

@AtsushiYokokawa

Docker非対応のNAS上でDockerを動かしてみた

まとめ

Docker非対応のSynologyにDockerをぶち込んでみました。


さすがに非対応のため、いろいろ問題は起きます。

あくまで自己責任で。。。


ただ、使えるようになれば幅は限りなく広がります。


以上、ここまで見ていただきありがとうございます。

皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。

コメント一覧

コメントがまだありません

コメントを投稿してみる

コメント(必須※500文字以内)

お名前(必須※30文字以内)

※日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)