Докер: Виртуальная машина как работник с ее хостом в качестве менеджера в Swarm

У меня проблемы с поиском того рекламного адреса, который менеджер должен использовать для работы со следующей настройкой:

Проблема в том, что если я использую параметры по умолчанию docker swarm init на хосте я не могу заставить свой докер подключиться к этому рою, используя строку подключения, возвращаемую init выше.

user@host$ docker swarm init
Swarm initialized: current node (9cv0khu88hdq7wsdqlzqpj7e0) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-2qx019269giy7jsnehqukpgjz9pqfe7ifprd0evcyi3ef1d699-7c1jig60by75lpuh5pjg5wuy8 192.168.65.2:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

user@host$ docker-machine ssh my-vm-1
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 17.10.0-ce, build HEAD : 34fe485 - Wed Oct 18 17:16:34 UTC 2017
Docker version 17.10.0-ce, build f4ffd25
docker@my-vm-1$ docker swarm join --token SWMTKN-1-2qx019269giy7jsnehqukpgjz9pqfe7ifprd0evcyi3ef1d699-7c1jig60by75lpuh5pjg5wuy8 192.168.65.2:2377

Error response from daemon: Timeout was reached before node joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.

Хорошо, вероятно, глупо надеяться, что это будет работать без каких-либо опций, но... Как я должен знать, какой интерфейс должен слушать менеджер моего роя?

Спасибо за ваше время, хорошего дня

Alex

Сноска: я разместил тот же вопрос в сообществе Docker

1 ответ

Решение

В соответствии с вашими настройками, когда вы создаете виртуальную машину с докером, у вас будет новый интерфейс vboxnet с IP-адресом 192.168.99.1:

7: vboxnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.99.1/24 brd 192.168.99.255 scope global vboxnet1
       valid_lft forever preferred_lft forever

В вашей виртуальной машине с докером эта сеть будет настроена в интерфейсе eth1:

4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:f0:26:ac brd ff:ff:ff:ff:ff:ff
    inet 192.168.99.100/24 brd 192.168.99.255 scope global eth1

Этот сетевой адрес 192.168.99.0/24 вы можете использовать для связи вашего хоста с виртуальной машиной док-машины.

На вашем хосте начните свой роем с IP-адреса хоста:

docker swarm init --advertise-addr 192.168.99.1

И в вашей докер-машине используйте токен, чтобы присоединиться к рою:

docker swarm join --token SWMTKN-1-5rzst....4onvjsdpvnc23ya4tq7zdrjjw 192.168.99.1:2377
This node joined a swarm as a worker.

И ваш рой-докер будет иметь два узла.

Другие вопросы по тегам