私は Docker を 5 年以上使用してきましたが、その時間の大部分は Docker Run コマンドを使用してきました。最近 Docker Compose に切り替えたところ、ホームラボの管理が非常に簡単になりました。
簡単なので、私はいつも Docker Run コマンドを使用していました
ポーテイナー起動コマンドとして翻訳しただけです
私は Unraid での Docker の使用から Porttainer での Docker の使用に直接移行しました。つまり、基本的に Docker Compose ファイルに触れたことはありません。 Unraid の Docker は、ほとんどのアプリに自動構成テンプレートがあるため、非常にポイント アンド クリックで操作できます。
Porttainer では、なじみのあるものにしたかったので、Docker Run コマンド (または Docker Compose ファイル) を変更して、Porttainer の通常の起動パラメータ内で動作するようにしました。実際には、追加の手順を追加しただけで、Docker Run を使用していました。
私がこの方法を気に入ったのは、馴染みがあり、比較的シンプルで、コマンドに何を入力するかを考える必要がなく、すべてのオプションが事前に表示されるためです。 Portainer は本当に Docker を使いやすくしました。問題は、これが別のシステムに移行するときに役に立たないことです。
ただし、Docker Compose はシステムに依存せず、どこで使用しても同様に動作します。最終的に、私はコンテナを起動する古い方法を捨て、Docker Compose を完全に受け入れることに決めました。その変更には非常に満足しています。
Docker Compose はカスタマイズがはるかに簡単です
設定画面ではなく、すべて YAML で実行されます
これまでに Docker Compose を使用したことがない場合、これは基本的に、Docker に何をすべきかを指示する単なる YAML ファイルです。単一の Compose ファイル内に複数のコンテナを含めることができ、コンテナはすべてローカル ネットワークを自動的に共有するため、大規模なサービスには非常に便利です。
サービスの起動後に Compose ファイルを表示および編集することもできます。ターミナルでの通常の Docker Run コマンドでは、これは不可能です。そのコンテナを手動で停止し、コマンドを再入力してコンテナを再度起動する必要があります。

DevOps プロのように Docker コンテナを管理する「怠惰な」方法
キーボードファーストの UI を使用して、ターミナルを離れることなく、コンテナーの開始/停止、ログの監視、デバッグを簡単に行うことができます。
Porttainer のようなものを使用すると、実質的にコンテナを再構築することになり、必要な設定を変更してからデプロイメントを解除する必要があります。通常の Docker Run コマンドよりも少し単純ですが、それでもそれほど単純ではありません。
Docker Compose を使用すると、Compose ファイルを開いて必要な変更を加え、Compose ファイルを再デプロイできるようになりました。以前に比べて、コンテナに変更を加えることが非常に簡単になりました。
Docker Compose を使用すると、コンテナを別のシステムに簡単に移動できます
必要なのは Compose ファイルをコピーして貼り付けるだけです
コンテナを別のシステムに移動することが、すべてを Compose に移動したまさに理由です。 1 か月ほど前、自宅の研究室でかなり壊滅的なデータ損失が発生しました。それはすべて私のせいでした。
ありがたいことに、それほど重要なものを失うことはありませんでしたが、それでもすべてを再び機能させるのは大変な苦痛でした。これには、再起動する必要があった Docker コンテナーが含まれていました。コンテナの設定をすべて失ってしまいました。紛失しなかったコンテナについては、起動コマンドをバックアップする実際の方法がありませんでした。
そこで、Docker Compose を使用してすべてのコンテナを再作成することにしました。退屈ではありましたが、最終的には間違いなくその価値がありました。これで、あるシステムで実行されている同じ Docker Compose ファイルを取得し、コピーして別のシステムに貼り付けることができ、その Docker スタックは数秒で起動して実行されます。
これはとても便利なので、なぜ今まで Docker Compose を採用しなかったのかわかりません。今日を例に考えてみましょう。これを書いている時点で、Plex は最近、ライフタイム Plex パスの値上げを発表しました。
私はすでに Lifetime Plex Pass を持っていますが、最後に使用してからしばらく経っていたので、Jellyfin を試してみたかったのです。 Plex Compose ファイルを開いて、メディアが保存されている場所のファイル パスをコピーし、トランスコーディング デバイスのデバイス パスをコピーして、Jellyfin Compose ファイルに貼り付けるだけで済みました。
5 分以内に、完全なトランスコーディング サポートを備えた Jellyfin を起動して実行し、Plex がすでにアクセスしていたすべての映画とテレビ番組のライブラリを読み取ることができました。どのような設定があるのかを確認するために複数のタブに移動する必要も、行ごとにコピーして貼り付ける必要も、どのトグルを切り替えるかを覚えておく必要もありませんでした。
これはすべて YAML であり、同じシステム上にあるため、メディアやデバイス パスなどのすべての付随情報は両方のストリーミング プラットフォームで同一です。これにより、Jellyfin のデプロイが非常に簡単になりました。
また、同じ手法を使用して、Docker スタックをまったく別のシステムに移動しました。私のホームラボでは 3 台のミニ PC のほか、フルサイズのデスクトップと 2 台の NAS サーバーが稼働しており、それらはすべて Docker を実行しています。
そのため、サーバーに保存されている Compose ファイルと構成ファイルを簡単に取得して、新しいシステムに移動し、数秒で起動することができます。
- ブランド
-
カムルイ
- CPU
-
AMD Ryzen 7 7735HS
- グラフィックス
-
AMD Radeon 680M
- メモリ
-
16GB LPDDR5
- ストレージ
-
512GB NVMe
KAMRUI Hyper H1 ミニ PC は、手足を使わずに高性能デスクトップを必要とするセットアップに最適です。 AMD Ryzen 7 7735HS 8 コア 16 スレッド プロセッサーと 16 GB の LPDDR5 RAM (ユーザーによるアップグレードは不可) を誇ります。ただし、プリインストールされた 512GB NVMe ドライブは、より大きなドライブに交換することができ、必要に応じて追加のストレージ用に 2 つ目の NVMe スロットがあります。
Docker Compose は、何年も前に行えばよかったホームラボの変更です
結局のところ、Docker Compose はホームラボの管理を容易にするだけです。コンテナを新しいサーバーに移動する際の心の痛みをかなり軽減できたので、ずっと前にこれを採用していればよかったと思います。
まだ Docker Compose を使用していない場合は、試してみてください。これはあなたが思っているほど恐ろしいものではなく、Docker ワークフローを大幅に改善します。
このテーマについてさらに詳しく知りたい方は以下をご覧ください