Я пытаюсь сделать так, чтобы и у диспетчера докеров, и у рабочих докеров был предварительно выбранный токен, который они могут использовать, поэтому мне не нужно docker ssh
и запускать дальнейшие команды. Документы, похоже, поддерживают этот процесс с помощью флага --swarm-discovery с токеном.
docker run swarm create
Используйте этот токен ниже в следующей команде:
docker-machine create --swarm-master --swarm --driver virtualbox --swarm-discovery token://b4e72945cb52c1324REDACTED manager2
docker-machine ssh
но когда я запускаю docker node ls
он говорит: «Этот узел не является менеджером роя. Используйте «docker swarm init» или «docker swarm join», чтобы подключить этот узел к swarm и повторить попытку ». а затем мне нужно запустить docker swarm init./swarm manage --tlsverify --tlscacert=/var/lib/boot2docker/ca.pem --tlscert=/var/lib/boot2docker/server.pem --tlskey=/var/lib/boot2docker/server-key.pem -H tcp://0.0.0.0:3376 --strategy spread --advertise 192.168.99.100:3376 token://b4e72945cb52c1324REDACTED
docker-machine create --swarm --driver virtualbox --swarm-discovery "token://b4e72945cb52c1324REDACTED" worker1
, потому что он не присоединяется автоматически к рой ... Мне нужно ssh и запустить docker join.Таким образом, я не вижу смысла использования флага --swarm-discovery в протоколе токенов.
$ docker -v
Docker version 1.12.1, build 6f9534c
$ docker-machine -v
docker-machine version 0.8.1, build 41b3b25
@ahmetalpbalkan - Думаю, это исправление другой проблемы?
@ pc-mreeves да, моя ошибка
Вы смешиваете "классический рой" (https://github.com/docker/swarm) и "режим роя" (представленный в 1.12 и встроенный в движок).
Чтобы использовать "классический рой", вы делаете eval $(docker-machine env --swarm manager)
. Если вы хотите использовать новые функции режима роя, вам нужно самостоятельно запустить команды init
и join
на узлах vbox - спасибо
@nathanleclaire Мне потребовалось много времени, чтобы понять, как
Самый полезный комментарий
Вы смешиваете "классический рой" (https://github.com/docker/swarm) и "режим роя" (представленный в 1.12 и встроенный в движок).
Чтобы использовать "классический рой", вы делаете
eval $(docker-machine env --swarm manager)
. Если вы хотите использовать новые функции режима роя, вам нужно самостоятельно запустить командыinit
иjoin
на узлах vbox - спасибо