GUIDE / DOCKER & SSH

DockerをSSH経由でリモート管理する方法

リモートサーバーのDocker Engineをデーモンポート開放なしで安全に操作する手法(CLI Docker ContextとConsole Hub UI)を解説します

01 / OVERVIEW

TCPポートを開放しないリモートDocker管理

既存のSSH接続を使うと、Docker API用の待受ポートを増やさずにリモートEngineを操作できます。CLIで対象を指定して確認したい場合はDocker Context、ホストの接続設定と画面操作をまとめたい場合はConsole Hubが選択肢になります

2つのアプローチ
  • CLI Docker Context: 接続先に名前を付け、ローカルのDocker CLIからリモートEngineを操作
  • Console Hub (Web UI): サーバー上でSSHソケット接続を行い、ブラウザからコンテナ・Compose・ログを一括操作する手法

CLI WORKFLOW

検証ホストのコンテナ一覧を確認する

例では、作業端末にDocker CLIとSSHクライアント、接続先に稼働中のDocker Engineがあることを前提とします。ホスト名とユーザー名は自分の検証環境に置き換えてください。SSHユーザーには対象Engineのソケットへアクセスする権限が必要です

  1. ssh [email protected] で接続します。初回のホスト鍵は管理者から受け取った指紋と照合し、接続先で docker ps が実行できることを確認してからSSHを終了します
  2. 作業端末で接続先を登録し、そのContextを明示して一覧を取得します
docker context create ch-test --docker host=ssh://[email protected]
docker --context ch-test ps

表示されるのは検証ホストのコンテナ一覧です。コンテナがなければ見出しだけが表示されます。各コマンドで --context ch-test を指定するため、普段使うContextの切り替えは不要です

Contextを保存しない確認には、作業端末のPOSIXシェルで次のように指定できます。既存の DOCKER_CONTEXT がある場合はそちらが優先されるため、この例ではそのコマンドに限って解除します

(unset DOCKER_CONTEXT; DOCKER_HOST=ssh://[email protected] docker ps)

一覧取得はコンテナを変更しません。ただし、同じ接続経路で変更コマンドも実行できるため、Dockerアクセス権は強い権限として管理してください

BROWSER WORKFLOW

Console Hubから同じホストを確認する

  1. LinuxホストのSSH接続情報を登録し、接続テストとホスト鍵の確認を行います
  2. ホストのランチャーまたはサイドバーからDockerを開き、OverviewとContainersで対象を確認します
  3. 調査対象のログを開きます。ProjectのTerminalはホストSSH、ContainerのTerminalは稼働中コンテナ内のexecです。実行先を確認して使い分けます

Docker閲覧にはホスト閲覧・SSH接続・Docker閲覧権限、変更にはDocker管理権限も必要です。CLIで作成したContextをConsole Hubへ読み込む手順ではありません

操作と権限のリファレンスで対応範囲を確認できます

TROUBLESHOOTING

接続できないときの切り分け

  • SSH自体が失敗する場合:接続元からの経路、ポート、ユーザー、鍵を確認します
  • SSHは成功しDockerだけ拒否される場合:同じSSHユーザーでEngineへアクセスできるか確認します。sudoやTCP公開で回避せず、対象ホストの管理者と権限を見直します
  • 一覧が想定と違う場合:Contextの接続先とConsole Hubで選択したホストを確認します。対象が確定するまで変更操作は行いません

CLI例の参照:Docker公式:SSHによるEngine接続(2026年9月14日確認)

GET STARTED

Console HubでのDocker管理を見る

Docker Manager機能の詳細と接続要件をご確認いただけます