コンテナの管理とカスタマイズ
:::caution[Disclaimer]
このページは、あらゆるスキルレベルのユーザーが Unraid OS 上の Docker コンテナを最大限に活用できるように作成されています。ヒントやベストプラクティスは Unraid チームによるもので、多くのユーザーのニーズに合うよう調整されています。ただし、Docker は常に進化しているため、Unraid で扱っている範囲を超える最新機能、より高度な設定、またはトラブルシューティングについては、公式 Docker ドキュメントを確認することを常におすすめします。
:::
Unraid で Docker コンテナをカスタマイズする前に、基本的な設定オプションを理解しておくと便利です。各 コンテナテンプレート には、ネットワーク、ストレージ、環境変数を設定するための使いやすいインターフェースが用意されており、複雑なコマンドラインツールを使わずにコンテナの動作をニーズに合わせて調整できます。
- ネットワークタイプ
- ボリュームマッピング
- ポートマッピング
- 環境変数
Unraid は、いくつかの Docker ネットワークモードをサポートしています。選択するネットワークタイプによって、コンテナが他のデバイスやコンテナとどのように通信するかが決まります:
-
Bridge(デフォルト): コンテナは内部 Docker ネットワーク上に配置されます。明示的にマッピングしたポートのみが、Unraid サーバーまたは LAN からアクセス可能になります。これは、ほとんどのアプリケーションにとって最も安全で、最も一般的な選択肢です。
-
Host: コンテナは Unraid サーバーのネットワークスタックを共有します。利用可能な任意のポートを使用できますが、他のサービスとのポート競合がないことを確認する必要があります。アプリケーションが直接のネットワークアクセスを必要とする場合にのみ、このモードを使用してください。
-
None: コンテナにはネットワークアクセスがありません。ネットワーク接続を必要としない、分離されたワークロードに使用してください。
-
Custom(macvlan/ipvlan): コンテナには LAN 上で独自の IP アドレスが割り当てられ、個別のデバイスとして表示されます。これは高度なシナリオで便利ですが、ネットワーク環境で追加の設定が必要になる場合があります。
コンテナのテンプレートで指定されたデフォルトのネットワークタイプは、ほとんどのユーザーに推奨されます.
Docker には、同じサブネットを共有する 2 つのネットワークに参加できないという制限があります。有線接続と無線接続を切り替える場合は、Docker を再起動し、既存のすべてのコンテナを新しいインターフェースを使用するよう再設定する必要があります。この ネットワーク構成 の変更には、コンテナの再設定が必要です。
ボリュームマッピングは、コンテナがUnraidサーバー上のファイルにアクセスする方法を制御します。各マッピングは、コンテナ内のフォルダー(コンテナパス)を、Unraidサーバー上のフォルダー(ホストパス)にリンクします。
- コンテナパス: コンテナ内のディレクトリ(例:
/configまたは/unraid_media)。 - ホストパス: Unraidサーバー上のディレクトリ(例:
/mnt/user/appdata/myapp)。 - アクセスモード: 権限を制御します - 読み取り専用または読み取り/書き込みです。コンテナが動作できる範囲で、最も制限の厳しいモードを使用してください。
アプリケーションデータ(設定、ライブラリなど)はコンテナの外、通常はappdata user share に保存してください。この共有管理の方法により、更新や再インストールの際もデータを安全に保てます。
- パスは大文字と小文字を区別します。
- コンテナのパスは
/で始める必要があります。 - ホストパスとして未割り当てデバイスを使用する場合は、正しく検出されるようアクセスモードを「Slave」オプションに設定してください。
- コンテナの起動時に存在しないホストパスは自動的に作成されます。
- サーバーに予期しないフォルダーが表示される場合は、マッピングの設定が誤っている可能性があります。
ポートマッピングは、Unraidサーバーからコンテナへのネットワークトラフィックのルーティング方法を決定します。
-
ブリッジネットワーク: コンテナ内ポートを別のホストポートに割り当てることができます。たとえば、3つのコンテナが内部でポート8000を使用している場合、ホスト側では8000、8001、8002に割り当てられます。
-
ホストネットワーク: コンテナは利用可能な任意のポートを使用できます。競合を避けるため、複数のコンテナを同じポートで実行しないようにしてください。
ホストポートの値のみを変更してください。アプリケーションがサポートしていると分かっている場合を除き、コンテナポートは変更しないでください。
ほとんどのテンプレートには適切な既定値が用意されていますが、ポートのマッピングを追加または調整できます。
環境変数を使用すると、Docker コンテナーの動作を実行時にカスタマイズできます。キーと値のペアを渡せるため、コンテナー化されたアプリケーションでそれらを読み取り、利用できます。
環境変数の一般的な用途
- タイムゾーンの設定
- ユーザー ID とグループ ID の設定
- 言語設定の指定
- API キーや機能切り替えなど、アプリケーション固有の設定を調整する
WebGUI で環境変数を管理する
- WebGUI を使用して、コンテナーの設定画面で環境変数を追加、編集、または削除できます。
- 多くのコンテナーテンプレートには、すでに設定済みの一般的な環境変数が含まれていますが、必要に応じていつでも追加できます。
- 利用可能な環境変数と有効な値を把握するには、対象アプリケーションのドキュメントを必ず確認してください。
TZ=America/New_York: これはコンテナーのタイムゾーンを設定します。PUID=99とPGID=100: これはファイル権限のためのユーザー ID とグループ ID を設定します。UMASK=022: これは作成されるファイルのデフォルトのファイル権限を制御します。API_KEY=your_api_key_here:これは、外部サービスへの認証のためにアプリケーションで使用できます。
環境変数を使用して、機密情報や環境固有の情報をコンテナイメージ内にハードコードしないようにします。この方法は、コンテナの移植性とセキュリティを向上させます。
コンテナの作成と起動
コンテナのネットワーク、ボリュームマッピング、ポートマッピング、環境変数を設定したら、Docker コンテナを作成して起動する準備が整います。このセクションでは作成手順を案内し、起動順序や依存関係の管理方法を説明するとともに、高度な起動カスタマイズのヒントも紹介します。
コンテナを作成する
コンテナテンプレートで設定内容を確認したら:
- Create をクリックして、コンテナのダウンロードとセットアップを開始します。
- 処理が完了するまで、ブラウザウィンドウを閉じたり別のページへ移動したりしないでください。
- 新しいリポジトリの初回ダウンロードは、以降のダウンロードより時間がかかる場合があります。
- 処理が完了したら Done をクリックして Docker ページに戻ります。そこで、コンテナの管理や追加を行えます。
起動順序を計画する
一部のコンテナは、正しく動作するために他のコンテナに依存しています。たとえば、アプリケーションは先にデータベースコンテナの起動を必要とする場合があり、サービスによっては起動前に VPN コンテナ が有効になっている必要があります。
:::important[Plan 起動順序
- データベース、VPNs、ストレージゲートウェイなど、コアサービスを提供するコンテナを特定します。
- 依存するコンテナは、前提条件となるものが起動して準備完了になってから開始するようにします。
- 各コンテナのドキュメントを確認し、特別な起動要件を把握します。
:::
高度なコンテナ起動
Unraid では、どのコンテナを自動起動するか、またどの順序で起動するかを柔軟に制御できます。これは、他のコンテナに依存するコンテナがある場合(たとえば、データベースや VPN サービス)に特に便利です。
array の起動時にコンテナを自動起動するには:
- WebGUI の Docker タブに移動します。
- 自動起動したい各コンテナの Auto-Start スイッチを ON に切り替えます。
起動順序と遅延をカスタマイズする
デフォルトでは、Unraid はすべての自動起動コンテナを、Docker タブに表示される順序で、できるだけ速く起動します。この順序はカスタマイズでき、コンテナの起動間に待機時間を追加することもできます:
- Docker タブで、南京錠アイコンを使ってコンテナ一覧のロックを解除します。
- コンテナをドラッグ&ドロップして順序を並べ替えます。
- 右上の切り替えで Advanced View に変更します。
- AutoStart 列で、次のコンテナが起動する前に追加の時間が必要なコンテナの wait 欄に待機時間(秒)を入力します。
- 試行錯誤しながら、構成に最適な待機時間を見つけます。
正しい順序と待機時間の設定は、他のサービスに依存するコンテナでは特に重要です(たとえば、アプリより先にデータベースを起動する場合や、依存するアプリより先に VPN を起動する場合など)。
起動順序をテストする
Unraid には専用の「起動順序テスト」機能はありませんが、起動順序を模擬して確認することはできます:
- Docker タブからすべてのコンテナを停止します。
- 計画した順序で、各コンテナを Start ボタンを使って手動で起動します。
- コンテナのログとアプリケーションの動作を監視し、依存関係が満たされていることと、サービスが期待どおりに初期化されていることを確認します。
- 必要に応じて起動順序や待機時間を調整します。
コンテナの依存関係を変更したり新しいサービスを追加したりした後は、特に起動タイミングに依存する構成では、起動順序をテストしてください。
コンテナの操作
Docker コンテナを作成して起動したら、WebGUI から簡単に管理できます。このガイドでは、コンテキストメニューの使い方、コンテナのヘルスインジケーターの見方、コンテナ内でのボリュームマッピングへのアクセス方法を説明します。
コンテナのコンテキストメニューを開くには、Docker タブまたは Dashboard タブに移動し、管理したいコンテナのアイコンをクリックします。このメニューから、よく使う操作へ簡単にアクセスできます:

| オプション | 説明 |
|---|---|
| WebUI | コンテナの Web インターフェースを新しいブラウザタブで開きます(利用可能な場合)。 |
| コンソール | コンテナと直接やり取りするためのコマンドラインインターフェースを開きます。 |
| 停止 | 実行中のコンテナを停止します。 |
| 一時停止 | コンテナを一時停止し、すべてのプロセスを一時的に停止します。 |
| 再起動 | コンテナを再起動し、設定変更を適用します。 |
| ログ | トラブルシューティング用にコンテナのログ出力を表示します。 |
| 編集 | ポートやボリュームのマッピングなど、コンテナ設定を変更します。変更は保存後すぐに適用されます。 |
| 削除 | コンテナを削除します。コンテナだけを削除することも、イメージも削除することもできます。 |
| プロジェクトページ | ドキュメントやサポートのために、コンテナのプロジェクトページを開きます。 |
| サポート | コンテナのサポートリソースとヘルプにアクセスします。 |
| 詳細情報 | コンテナとその設定に関する追加情報を表示します。 |
ヘルスインジケーター
各コンテナのアイコンの横に色付きのヘルスインジケーターが表示されます:
- 🟢 Healthy: コンテナが稼働中で、期待どおりに応答していることを示します。
- 🟡 Unhealthy: コンテナは稼働していますが、ヘルスチェックに失敗しています。詳細についてはログまたはコンテナ設定を確認してください。
- ⚪ No health check: このコンテナにはヘルスチェックが設定されていません。多くのアプリではよくあることで、必ずしも問題ではありません。
ヘルスチェックはコンテナ作者によって定義されており、すべてのイメージに存在するとは限りません。
コンテナ内のボリュームマッピング
アプリケーションを Web インターフェースで設定する際は、ホストパスではなく、設定時に指定した container path を参照してください。
たとえば、ホスト上の /mnt/user/media をコンテナ内の /unraid_media にマッピングした場合、アプリケーション設定では /unraid_media を使用します。
使用例
以下は、Docker コンテナを設定するときにユーザーがよく必要とする一般的なパスマッピング構成の例です。これらは、Unraid のホストファイルシステムのパスとコンテナ内部のパスをどのように対応付けるかを示しており、アプリケーションを正しく設定するのに役立ちます。
-
メディアサーバー: ホストパス:
/mnt/user/media
コンテナパス:/unraid_mediaアプリでは、メディアライブラリの場所を
/unraid_mediaに設定します。 -
Appdata ストレージ: ホストパス:
/mnt/user/appdata/myapp
コンテナパス:/configアプリでは、設定保存先として
/configを使用します。 -
複数の user shares: ホストパス:
/mnt/user/media→ コンテナパス:/media
ホストパス:/mnt/user/data→ コンテナパス:/data必要に応じて、アプリケーション内で
/mediaまたは/dataを参照します。
コンテナが適切に動作するために必要な、最も制限の厳しい アクセスモード(読み取り専用または読み書き可能)を必ず使用してください。
開始と停止のスケジュール設定
Unraid は Docker コンテナ の開始・停止をネイティブにはスケジュールできませんが、User Scripts プラグイン を使えばこの処理を簡単に自動化できます。この強力なツールを使うと、スケジュールに従ってカスタムスクリプトを実行でき、コンテナを自動制御できます。
User Scripts プラグイン
User Scripts プラグイン を使うと、WebGUI から直接、カスタムシェルスクリプトの作成、管理、スケジュール設定ができます。コンテナの開始・停止、データのバックアップ、メンテナンス作業の実行など、さまざまな自動化タスクに利用できます。
- まだインストールしていない場合は、Apps タブからプラグインをインストールしてください。
- Settings → User Scripts からアクセスして、スクリプトを作成・管理します。
プラグインの詳細については、Plugins をご覧ください。
コンテナ操作のスケジュール設定
スケジュールに従ってコンテナの開始または停止を自動化するには:
- Apps タブから User Scripts プラグイン をインストールします。
- Settings → User Scripts に移動します。
- スケジュールごとに新しいスクリプトを作成します。同じスケジュールであれば、1 つのスクリプトに複数のコンテナ用コマンドを含めることもできます。
- ドロップダウンメニューでスケジュールを設定するか、より高度なタイミング制御のためにカスタム
cron式を使用します。 - Apply をクリックしてスクリプトを保存し、有効化します。
cron 式を使うと、組み込みオプションを超えた柔軟なスケジュール設定ができます。たとえば、0 3 * * 1 は毎週月曜日の午前 3:00 にスクリプトを実行します。
コマンド例
- コンテナを開始
- コンテナを停止
- コンテナを再起動
- コンテナの状態を確認
- コンテナのログを表示
コンテナを起動するには、次のコマンドを使用します:
docker start "container-name"
"container-name" を Docker タブに表示されている実際の名前に置き換えてください。
コンテナーを停止するには、次のコマンドを使用します:
docker stop "container-name"
"container-name" を Docker タブに表示されている実際の名前に置き換えてください。
コンテナーを再起動するには(設定の更新後やトラブルシューティング時に便利です):
docker restart "container-name"
"container-name" を Docker タブに表示されている実際の名前に置き換えてください。
コンテナが実行中かどうかを確認するには:
docker ps --filter "name=container-name"
これは、コンテナが現在実行中であれば一覧に表示します。
コンテナーのログを表示するには(トラブルシューティングに役立ちます):
docker logs "container-name"
これは、指定したコンテナーの最近のログ出力を表示します。
コンテナ名は、Docker タブまたはコンテナの設定画面にある docker run コマンドで確認できます。