У меня есть файл docker-compose.yml, и если я запустил docker swarm init, я могу:
$ docker stack deploy --compose-file=docker-compose.yml example
И все работает нормально.
Я так понимаю, что я не могу использовать docker stack deploy
для развертывания в рое, в который не входит мой хост.
Итак, я запустил несколько экземпляров Virtualbox:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
manager - virtualbox Running tcp://192.168.99.102:2376 v17.05.0-ce
worker1 - virtualbox Running tcp://192.168.99.100:2376 v17.05.0-ce
worker2 - virtualbox Running tcp://192.168.99.101:2376 v17.05.0-ce
Соединил рабочих с менеджером.
$ docker-machine ssh worker1 "docker swarm join --token=${worker_token} --listen-addr $(docker-machine ip worker1) --advertise-addr $(docker-machine ip worker1) $(docker-machine ip manager)"
$ docker-machine ssh worker2 "docker swarm join --token=${worker_token} --listen-addr $(docker-machine ip worker2) --advertise-addr $(docker-machine ip worker2) $(docker-machine ip manager)"
Мне было интересно, может ли мой хост присоединиться к рой, запустить развертывание стека и покинуть его?
Попытка присоединиться к нему не удалась.
Error response from daemon: can't initialize raft node: rpc error: code = 2 desc = could not connect to prospective new cluster member using its advertised address: rpc error: code = 4 desc = context deadline exceeded
Итак, мой вопрос: как я могу развернуть свой стек docker-compose в рое, частью которого я не являюсь? Действительно ли копирование файла и запуск стека - это способ сделать это?