Docker Esegui console in un docker 1.12 sciame


Esempio

Questo si basa sull'immagine ufficiale docker console per eseguire console in modalità cluster in uno sciame docker con nuova modalità sciame in Docker 1.12. Questo esempio è basato su http://qnib.org/2016/08/11/consul-service/ . In breve, l'idea è di utilizzare due servizi swarm docker che parlano tra loro. Questo risolve il problema che non puoi conoscere gli IP dei singoli container console in anticipo e ti consente di fare affidamento sui dns degli sciami docker.

Questo presuppone che tu abbia già un cluster sciame di 1.12 docker in esecuzione con almeno tre nodi.

Potrebbe essere necessario configurare un driver di registro sui daemon della finestra mobile in modo da poter vedere cosa sta succedendo. Ho usato il driver syslog per questo: imposta l' --log-driver=syslog su dockerd.

Per prima cosa crea una rete overlay per console:

docker network create consul-net -d overlay

Ora avvia il cluster con un solo nodo (default --replicas è 1):

docker service create --name consul-seed \
  -p 8301:8300 \
  --network consul-net \
  -e 'CONSUL_BIND_INTERFACE=eth0' \
  consul agent -server -bootstrap-expect=3  -retry-join=consul-seed:8301 -retry-join=consul-cluster:8300

Ora dovresti avere un cluster a 1 nodo. Ora fai apparire il secondo servizio:

docker service create --name consul-cluster \
  -p 8300:8300 \
  --network consul-net \
  --replicas 3 \
  -e 'CONSUL_BIND_INTERFACE=eth0' \
  consul agent -server -retry-join=consul-seed:8301 -retry-join=consul-cluster:8300 

Ora dovresti avere un console console a quattro nodi. Puoi verificarlo eseguendo su uno qualsiasi dei contenitori docker:

docker exec <containerid> consul members