Help us understand the problem. What is going on with this article?

docker daemonとclientの分離(dockerを別のマシンで動かして接続する)

メインマシンのimacにdockerは入れているが、マシンリソース食うのでできれば別のマシンで動かしたい。
ちょうど汎用鯖兼NASがあるので、そちらでdockerを動かしてimacからはコマンドのみでつなぎたい。

dockerd自体はrest-apiで動いている、というざっくり理解はあったので、これはポート開ければ
サーバーとクライアントで分離できるんじゃないかと思った。

こうすればOK

・Dockerが動いているサーバーにSSH(鍵、パスワードではダメ)でつながるようにする。
・環境変数:DOCKER_HOSTに「ssh://[user]@[host name]:[port]」とexportする。
これでつながる。

公式Doc

https://docs.docker.com/engine/reference/commandline/dockerd/#examples
socketとかtcpでつながるようなオプションもあるが、tcpでやろうとするとserviceの設定内容変えないといけなかったり、
セキュリティ的に推奨されない(まぁ家鯖なので特に気にしなくても良いが)ので、お手軽なSSHでつなぐ形でやる。

To use SSH connection, you need to set up ssh so that it can reach the remote host with public key authentication. Password authentication is not supported.

ドキュメントにもあるがSSHのパスワード認証はサポートされない。
なので鍵つくってそれで入れるようにしましょう。

クライアント側は
docker -H ssh://me@example.com:22 ps
のコマンドでつながる様になる。
何度も-Hで指定するのはタルいので、環境変数に入れとく。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away