Posted at

ローカルからリモートのDockerホストにdockerコマンドを投げる

More than 1 year has passed since last update.


目的

リモートにあるDockerホストに対してローカルのDockerクライアントからアクセスする。

イメージ的には、

------------------------------                                --------------

|ローカル端末(dockerクライアント)| ------($docker hogehoge)------>| Dockerホスト|
------------------------------ --------------

とする。


前提


  • Ubuntu 16.04

  • Docker 17.09.0-ce

  • DockerホストのIPアドレスは192.168.56.102


手順


docker.serviceファイルの修正

あまりお行儀がよくないけれども、直接 docker.serviceを修正する。

# vim /lib/systemd/system/docker.service


修正ポイント


修正前

ExecStart=/usr/bin/dockerd -H fd://



修正後

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H fd://



dockerdの再起動

dockerデーモンの再起動を行う。

# systemctl daemon-reload

# systemctl stop docker
# systemctl start docker


動作確認

先ほど設定した0.0.0.0:2376でListenしてくれているかをnetstatを使って確認する。


netstatによる確認

# netstat -ntap | grep :2376

tcp6 0 0 :::2376 :::* LISTEN 4315/dockerd

ローカルのマシンからコマンドを投げてみる。

-H tcp://IPアドレス:ポート番号でリモートのソケットに接続できる。


動作確認

$ docker -H tcp://192.168.56.102:2376 info

Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 2
Server Version: 17.09.0-ce
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 2
Dirperm1 Supported: true
~~~~略~~~~

どうやら動いているようだ。

以下のようにすることでdocker-composeもリモートサーバにお願いできる

bash:リモートでdocker-compose

$ docker-compose -H tcp://192.168.56.102 up -d