ホストオンリーネットワーク経由で通信できる2つのvirtualbox ubuntu16ゲストがあります:172.28.128.0/16
docker docs の手順を使用して、Docker Swarmを作成しました。以下は私の群れの状態です:
vagrant@master:~$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
127fuzxjq2j3ashcteu8fo248 worker1 Ready Active
43l953k75lv14uw7ni2hbib5j * master Ready Active Leader
このスウォームを使用して、サービスを正常に実行できます。しかし、Dockerを介してノードの172.28.128.0/16ベースのIPアドレスを取得することは可能ですか? docker commandline reference および docker remote api を確認してみました。私の目的は、リモートAPIを介してスウォームノードに接続することですが、そのためには、リモートDockerデーモンがリッスンできるように基盤となるAPIが必要になります。
ubuntu@ubuntu-xenial:~$ docker node inspect -h
Flag shorthand -h has been deprecated, please use --help
Usage: docker node inspect [OPTIONS] self|NODE [NODE...]
Display detailed information on one or more nodes
Options:
-f, --format string Format the output using the given Go template
--help Print usage
--pretty Print the information in a human friendly format
そして
ubuntu@ubuntu-xenial:~$ docker node inspect self --format '{{ .Status.Addr }}'
iPアドレスを返します。