目的
リモートにある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もリモートサーバにお願いできる
リモートでdocker-compose
$ docker-compose -H tcp://192.168.56.102 up -d