Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
14
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

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

目的

リモートにある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

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
14
Help us understand the problem. What are the problem?