O que estou tentando fazer é fazer com que o docker manager e os docker workers tenham um token pré-selecionado que possam usar, então não preciso docker ssh
e executar outros comandos. Os documentos parecem oferecer suporte a esse processo com a sinalização --swarm-discovery com um token.
docker run swarm create
Use esse token abaixo no próximo comando:
docker-machine create --swarm-master --swarm --driver virtualbox --swarm-discovery token://b4e72945cb52c1324REDACTED manager2
docker-machine ssh
mas quando executo docker node ls
diz 'Este nó não é um gerenciador de enxame. Use "docker swarm init" ou "docker swarm join" para conectar este nó ao swarm e tente novamente. ' e então preciso executar 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
forma que ele não se junte automaticamente ao swarm ... Tenho que executar o ssh e executar docker join.Portanto, não vejo o objetivo do sinalizador --swarm-discovery usando o protocolo token.
$ docker -v
Docker version 1.12.1, build 6f9534c
$ docker-machine -v
docker-machine version 0.8.1, build 41b3b25
@ahmetalpbalkan - Acho que talvez seja uma solução para um problema diferente.
@ pc-mreeves sim, meu erro
Você está misturando "swarm clássico" (https://github.com/docker/swarm) e "modo swarm" (introduzido em 1.12 e agrupado no motor).
Para usar o "enxame clássico" você faz eval $(docker-machine env --swarm manager)
. Se você quiser usar os novos recursos do modo de enxame, você deve executar os comandos init
e join
nos nós da vbox - obrigado
@nathanleclaire Levei muito tempo para descobrir como configurar um modo de enxame usando docker-machine. Não parece necessário porque o novo modo é bastante simples, graças ao seu comentário.
Comentários muito úteis
Você está misturando "swarm clássico" (https://github.com/docker/swarm) e "modo swarm" (introduzido em 1.12 e agrupado no motor).
Para usar o "enxame clássico" você faz
eval $(docker-machine env --swarm manager)
. Se você quiser usar os novos recursos do modo de enxame, você deve executar os comandosinit
ejoin
nos nós da vbox - obrigado