2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker クライアントとDocker サーバを分離した環境を作成したときの話

Posted at

環境情報

最終的なDockerのバージョン
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: 67f9a391
Built: 08/22/2018 09:10:07
OS/Arch: windows/amd64
Experimental: false

Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:29:02 2018
OS/Arch: linux/amd64
Experimental: false

ClientのOS:Windows 10 1803
ServerのOS:Windows 10 1803

環境構成

ここの人と同様、かつ、
Docker ServerをWindowsで作りました。

前提

ServerにはWindows Docker をインストールし、サーバー上でDocker コマンドによる
各種動作が実行できていることは確認済み
また、前記事で、
クライアントにはDocker クライアントが導入済みなものとする。

設定

サーバ側は、以下の赤枠のチェックボックスをONにしておく。
docker.png

クライアント側は以下のように環境変数を設定しておく。
set DOCKER_HOST=tcp://[サーバのIPアドレス]:2375

クライアントからDocker コマンドを実行

環境変数を設定してから、docker psコマンドを実行・・・が、以下のように接続に失敗。
※赤で塗りつぶしているのはサーバのIPアドレス
docker-client.png

調査

サーバ側で拒否されているメッセージなので、サーバ側の受付アドレスを変更すればよいと推測。
が、見つからない。UNIXのDockerにある設定ファイル相当のものが見つからない。

そこで、発想の転換。
設定を変更できないなら、通信をなり済ませてあげればいいじゃない。
外部IPアドレスの特定ポートから来た通信をlocalhostの特定ポートへ変更すればよいのでは?

ポートフォワーディング

管理者権限のコマンドプロンプトで、以下を実行する

netsh interface portproxy add v4tov4 listenport=2375 listenaddr=(DockerサーバのIPアドレス) connectport=2375 connectaddress=localhost

docker コマンドの実行
docker-client-cmd.png

成功したので、よしとする。

※自分用メモですが、何かあればコメントをお願いします。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?