Docker Remote APIという便利でかつ簡単に利用可能なAPIがあるというのを最近知りました。 Docker Remote APIを使うと何が便利かというと...
- クライアントからリモートのDcokerホストでコンテナーを起動できる
- 起動パラメーターをちょこっと変えるだけでリモートから操作を受け付けるDockerホストとして運用可能
これは便利! ...以下、参考にしたサイトです。
Ubuntu 16.04を使う場合は次の通りです。
Dockerクライアントの構築
クライアント側はDockerを入れて、サービスを止めます。
$ sudo apt update && sudo apt-get install docker.io $ sudo systemctl disable docker && sudo systemctl stop docker
Dockerサーバーの構築
サーバーは次のように構築します。
$ sudo apt update && sudo apt-get install docker.io $ sudo vi /lib/systemd/system/docker.service ... #ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS ←元々の設定 ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS -H tcp://0.0.0.0:2375 ←TCP接続を受け付ける
設定反映のためにサービスの再起動
$ sudo systemctl daemon-reload $ sudo systemctl restart docker.service
ここまでできたらクライアントマシンでexport DOCKER_HOSTしたあと、dockerコマンドを通常のように実行して操作するだけです。簡単ですね。
操作端末上ののローカルのDockerを操作したい場合(当然ながら、サービスを起動する必要あり) export DOCKER_HOST="" 操作端末からDocker Remote APIを有効にしたリモートのDockerホストを操作 export DOCKER_HOST="tcp://192.168.0.250:2375"
上記はcase文か何かでシェルスクリプトとか書いておけば良いと思います。
ちなみにいずれDockerは、Dockerエンジンとクライアントは分離されるようです。将来の手順ではDockerクライアントをインストールするときのパッケージ名が変わってくるかもしれません。執筆時点では先にご紹介した通りです。