Назад | Перейти на главную страницу

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

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

Проблема в том, что если я использую параметры по умолчанию 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

Согласно вашим настройкам, когда вы создаете виртуальную машину docker с помощью docker-machine, у вас будет новый интерфейс 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

В вашей виртуальной машине docker-machine эта сеть будет настроена в вашем интерфейсе 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.

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