Docker 管理
Docker ソケットを通じて、ホスト上のコンテナ、Compose プロジェクト、イメージ、ネットワーク、ボリュームを管理します。入口はサイドバーの「Docker」で、ページは「コンテナ」「Compose」「イメージ」「ネットワーク」「ボリューム」「システム」の 6 つのタブに分かれています。Docker に接続できない場合は、ページ上部にエラーの詳細と設定を開くショートカットボタンが表示されます。
有効化の方法
Gately をコンテナで動かしている場合は、ホストの Docker ソケットをマウントします。
-v /var/run/docker.sock:/var/run/docker.sockDocker のアドレスはデフォルトで unix:///var/run/docker.sock です。「システム」タブの設定で変更できます。
セキュリティ上の注意
docker.sock をマウントすることは、ホストの root 相当の権限を与えることと同じです。Docker 管理が不要な場合はこのマウントを外し、管理画面を保護してください(2 段階認証、セキュアエントリー、LAN 内からのみ許可)。
コンテナ
- 一覧は「すべて」「実行中」「停止中」で絞り込めます。カードにはイメージ、ネットワーク、ポート、マウント、更新状態が表示されます。
- 操作:起動、停止、再起動、一時停止、再開、強制終了、名前変更、削除(匿名ボリュームの同時削除も可能)、イメージとしてコミット。
- 自己保護:Gately は自身のコンテナと Compose プロジェクトを識別し、コンテナの停止・強制終了・一時停止・削除や、所属プロジェクトへの
downなど、自分自身にアクセスできなくなる操作を拒否します。 - 新規作成と編集:フォームでは、名前、イメージ(作成前に pull も可能)、作成後に起動、コマンドと Entrypoint、環境変数、ポートマッピング(TCP/UDP、ホスト IP も指定可)、マウント(ディレクトリの bind とボリュームの volume、読み取り専用も可)、メインネットワークと追加ネットワーク、固定 IP、エイリアス、再起動ポリシー(
no、always、unless-stopped、on-failureと最大リトライ回数)、特権モード、ケイパビリティの追加と削除、デバイスマッピング、ユーザー、作業ディレクトリ、ホスト名、DNS、ラベル、メモリ上限(MB)、CPU コア数、TTY と stdin の維持をカバーしています。編集時は元のコンテナの設定をベースに再作成し、フォームでカバーしていない設定項目は元の値を保持します。再作成に失敗した場合は自動でロールバックします。 - 詳細ページのタブ:
- 概要:状態、終了コード、再起動回数、ヘルス状態、ネットワークの詳細、マウント、所属する Compose プロジェクトとサービス。
- ログ:直近のログを表示し、タイムスタンプも表示できます。
- ターミナル:実行中のコンテナ内で対話ターミナルを開きます(デフォルトは
/bin/sh。コマンドとユーザーを指定可能。配色は Web ターミナルの設定に従います)。 - ファイル:コンテナ内のファイルを閲覧し、テキストをオンラインで編集(最大 1MiB)、アップロード、ダウンロード(ディレクトリは tar.gz にまとめられます)、名前変更、ディレクトリ作成、削除ができます。削除はコンテナ内の
rm -rfで行われるため、コンテナが実行中である必要があります。 - モニタリング:CPU、メモリ、ネットワークとディスク IO、プロセス数のサンプリングと、コンテナ内のプロセス一覧。
Compose
Compose プロジェクトは、コンテナのラベル com.docker.compose.project などから集約されます。状態(実行中、一部実行中、停止中)と各サービスが表示されます。
- 起動、停止、再起動、一時停止、再開、
down(名前付きボリュームの同時削除も可能)、ログの集約表示(各行にサービス名の接頭辞が付きます)。 - プロジェクトの新規作成:compose の内容を貼り付けると、Gately が設定ディレクトリの
compose/<name>/compose.yamlに書き込んで up を実行します。このようなプロジェクトには「managed」と表示され、Compose ファイルの編集、保存と適用、プロジェクト全体の削除ができます。 - 既存のプロジェクトでは、最初の compose ファイルをオンラインで編集でき(ファイルが書き込み可能である必要があります)、書き戻し後すぐに up するかどうかを選べます。
up、イメージの pull、ビルド、ファイルの読み書きは、docker composeコマンドラインと compose ファイルのパスへのアクセスに依存します。使用できない場合、画面に「docker compose コマンドが見つかりません」と表示されます。
イメージ
- 一覧にはタグ、サイズ、作成日時、参照しているコンテナ数、ダングリング状態が表示されます。詳細にはレイヤー履歴、環境変数、公開ポートなどが含まれます。
- Pull:「システム」設定のレジストリアカウントで認証します。直接の pull に失敗し、ミラーのアドレスが設定されている場合は順に試し、元の名前にタグを付け直します。Docker Hub の検索にも対応しています。
- Push、タグの追加、削除(強制も可)、ビルド(インラインの Dockerfile または Git アドレス。ビルド引数も指定可)、tar のインポートとエクスポート(
docker save形式)。 - 更新チェック:個別のコンテナのチェック、または「すべての更新を確認」を実行し、結果は各コンテナに表示されます。
- ワンクリックアップグレード:新しいイメージを pull してコンテナを再作成し、元の設定を引き継ぎます。アップグレードに失敗すると、元のコンテナに自動でロールバックします。複数選択による一括アップグレードにも対応しています。
- 「ダングリングを整理」は、タグがなく未使用のイメージをワンクリックで削除します。
ネットワークとボリューム
- ネットワーク:一覧にドライバー、スコープ、サブネット、ゲートウェイ、接続しているコンテナが表示されます。作成(ドライバー、サブネット、ゲートウェイ、内部ネットワーク、IPv6)と削除ができ、コンテナの接続と切断もできます。組み込みのネットワークは保護されています。
- ボリューム:ドライバー、マウントポイント、サイズ、参照数、使用しているコンテナが表示されます。作成、削除(強制も可)、tar.gz へのエクスポート、tar.gz からのインポートができます。エクスポートとインポートは一時的な alpine の補助コンテナで行われ、イメージがない場合は自動で pull されます。
システム
「システム」タブには次の内容があります。
- ホストと Docker の情報:バージョン、API バージョン、OS とアーキテクチャ、カーネル、CPU とメモリ、ストレージドライバー、データディレクトリ、コンテナとイメージの数、Compose CLI のバージョン。
- ディスク使用量:イメージ、コンテナ、ボリューム、ビルドキャッシュの数、サイズ、回収可能な量。
- クリーンアップ:停止中のコンテナ、ダングリングイメージ、未使用のすべてのイメージ、未使用のネットワーク、未使用のボリューム(データは完全に失われます)、ビルドキャッシュ。
- 設定:
| フィールド | 説明 |
|---|---|
host | Docker のアドレス。デフォルトは unix:///var/run/docker.sock |
mirrors | ミラーのアドレス一覧。直接の pull に失敗したときに順に試します。/etc/docker/daemon.json の registry-mirrors とは独立しており、後者は Docker が自動で使用し、設定ページに「デーモンのミラー」として読み取り専用で表示されます |
registries | プライベートレジストリのログイン情報(server、username、password)。パスワードは画面上でマスクされます |
autoCheckHours | 0 より大きい場合、その時間間隔でコンテナイメージの更新を自動チェックします。0 でオフ |
バックグラウンドタスク
pull、push、ビルド、一括チェック、一括アップグレード、Compose up などの時間のかかる操作はバックグラウンドタスクとして実行されます。ページ下部のタスクパネルにリアルタイムの出力と状態(実行中、完了、エラー)が表示され、履歴の確認と終了済みタスクの消去ができます。ページを再読み込みしても、実行中のタスクは復元されます。
イベント通知
Gately は Docker のイベントストリームを購読しており、コンテナが異常終了(終了コードが 0 以外)した場合や、OOM で強制終了された場合に docker.exited イベントを発行します。受信チャネルは 通知センター で設定できます。終了コード 0 の正常な停止は通知されません。Docker が一時的に利用できない場合は、30 秒ごとに購読を自動で再試行します。
API
API の詳細は Docker API を参照してください。