Dockerソケット転送

Secure Pipes SSH トンネルを使用して、Mac からリモート Docker ソケットにアクセスするか、リモート ホストからローカル ソケットにアクセスします。

実行前の確認

Docker ソケット アクセスにより、Docker ホストに対する強力な制御が可能になり、多くの場合、管理者アクセスと同等になります。ループバック アドレスのみを使用し、リスナーを信頼できないネットワークに公開しないでください。使用後はトンネルを停止してください。リスナー マシン上の他のユーザーやプロセスも、認証されていないローカル ポートにアクセスする可能性があります。 SSH ユーザーは、関連するソケットにアクセスする権限を持っている必要があります。 SSH サーバーは、対応する転送を許可する必要があります。これを機能させるためにソケットのアクセス許可を弱めないでください。

使用例

前提条件: テストを実行する Docker CLI をインストールし、宛先の Docker デーモンが実行されていることを確認します。 Mac で、現在の Docker コンテキストを検査します。 Unix ソケット パスは絶対パスである必要があります。リモート コンテキストはローカル ソケットではありません。

docker context inspect --format '{{.Endpoints.docker.Host}}'

ローカル転送: Secure Pipes で [ローカル転送] を選択し、ローカル エンドポイントを 127.0.0.1:8888 に設定し、/var/run/docker.sock を使用してリモート Unix ソケットを選択します。リモート Ubuntu ホストに接続し、Mac でこのコマンドを実行します。

docker -H tcp://127.0.0.1:8888 ps

リモート転送用の Mac ソケットを見つけるには、Mac 上の Docker コンテキストを調べます。たとえば、OrbStack は unix:///Users/yourname/.orbstack/run/docker.sock をレポートする場合があります。実際の絶対パスを使用してください。

docker context inspect --format '{{.Endpoints.docker.Host}}'

リモート転送: Secure Pipes で [Remote Forward] を選択し、リモート エンドポイントを 127.0.0.1:8888 に設定し、Mac ソケット パスを使用して [Local Unix Socket] を選択します。接続後、リモート ホストでこのコマンドを実行します。

docker -H tcp://127.0.0.1:8888 ps

あるいは、1 つのコマンドに対してのみ DOCKER_HOST を設定します。これにより、現在のシェルや保存された Docker コンテキストは変更されません。

DOCKER_HOST=tcp://127.0.0.1:8888 docker ps

公式リファレンス

確認日:2026年10月27日