投稿 2022年8月28日
更新 2023年7月30日
専門用語の数:多
SynologyのパッケージにはDockerが存在します。
※DSM7.2から、「Container Manager」という名前に変更された模様
ただし使用できるかは機種によります。
SynologyのContainer Managerパッケージ対応機種一覧
今回はDocker非対応の「Synology DS218play」に、
「Docker」を・・・ぶち込みます!
製品型番 | DS218play |
---|---|
DSMバージョン | DSM 7.1-42661 Update 4 |
※システムに関するところをいじるので、
実施する場合は自己責任でお願いします。
インストールするSynologyのアーキテクチャを、以下コマンドで確認します。
uname -m
私の場合は「aarch64」でした。
確認したアーキテクチャのDockerのバイナリのURLを確認します。
※バージョンは特に理由がなければ最新で大丈夫です。
確認した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
ダウンロードしたバイナリファイルを配置します。
tar xzvf /tmp/docker.gz -C /tmp
mv -f /tmp/docker/* /usr/local/bin
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デーモンを起動します。
dockerd &
ここまでくれば、dockerコマンドが使用できるはずです。
一般的なdockerコマンドでエラーが出なければ成功です。
docker ps
手動でデーモン起動が確認出来たら、自動で起動できるように設定します。
DSMのコントロールパネルから、タスクスケジューラーを開きます。
「作成」→「トリガーされたタスク」→「ユーザー指定のスクリプト」
タスク | お好きな名前 |
---|---|
ユーザー | root |
イベント | ブートアップ |
プリタスク | - |
有効 | チェック |
通知 | お好きなように |
---|---|
コマンドを実行 | dockerd & |
すでに別のブートアップタスクがあるのであれば、
コマンドの最終行にdockerdコマンドを追記してください。
ここまで来たら、もうDocker完成です。
上記で使用した「/etc/docker/daemon.json」
dockerデーモンの設定は、dockerdコマンド自体のオプションでも指定はできます。
やっていることは同じのため、設定ファイル基準で以下にまとめます。
設定項目 | 説明 |
---|---|
data-root | rootディレクトリの指定 |
registry-mirrors | キャッシュレジストリURLを指定 |
storage-driver | ファイルシステムを指定 |
bridge | デフォルトのnetworkを指定 |
パッケージセンターには、手動インストールができるところがあります。
公式ダウンロードセンターから、パッケージファイルがダウンロードできます。
近しい機種(DS218+)のDockerをダウンロードして、
手動インストールを試してみましたが、無理でした。
※以下のようなメッセージが出ました
「このパッケージは、DisStationのプラットフォームではサポートされていません。
または、現在DSMバージョンと互換性がありません。」
DSMアップデートを行うことで、dockerdコマンドが失敗するようになることがあります。
Docker構成ファイルで作成した「daemon.json」は、
DSMバージョンにあった設定を行う必要があるようです。
そりゃ、非対応DSMにぶち込んでいるので、何かは起きますよね。
できる限りDSM最新バージョンで起動できる設定を、記載していく予定です。
※この記事を書く前ですが、一回変更しています。
詳細は省略してコマンドだけ記載します。
※2023/07/15追記
{
"data-root": "/volume1/@docker/lib",
"registry-mirrors" : [],
"storage-driver" : "vfs",
"bridge": ""
}
Docker非対応のSynologyにDockerをぶち込んでみました。
さすがに非対応のため、いろいろ問題は起きます。
あくまで自己責任で。。。
ただ、使えるようになれば幅は限りなく広がります。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。
コメント一覧