OpenSSH-6.7以上で、unixドメインソケットの転送がサポートされる。この機能を使えば、リモートホストのDockerをtcpで待受けするようにわざわざ変更しなくても、sshで接続可能であればリモートのDockerホストにローカルのDockerから接続することができる。
(デフォルトではtcpで待受けしていないはず)
SSHのトンネリングを使用するので、当然22番以外のポート開放は必要ない。
- ホスト側
# /var/run/docker.sockを操作できるように<user>をdockerグループに追加する
usermod -G docker <user>
- クライアント側
ssh -A <user>@<host> -Llocalhost:12375:/var/run/docker.sock
export DOCKER_HOST='tcp://localhost:12375'
docker info