Desplegar con Docker Compose
Monta un clúster de tres nodos con Docker Compose y tokens de alta.
Monta un clúster de tres nodos con Docker Compose. Sirve para entornos de prueba; en producción, cada nodo va en su propia máquina.
Requisitos
- Docker con Compose.
- La versión de la imagen, la de Descargas.
Escribe el fichero
Guarda este fichero como compose.yaml en un directorio vacío de la máquina donde vas a arrancar los nodos:
YAML
services:
node-01:
image: teseladb/teseladb:<versión>
command: start --dbpath /data --bind_ip 0.0.0.0 --peer-listen 0.0.0.0:27100 --admin-listen 0.0.0.0:27200
volumes: ["node-01:/data"]
ports: ["27017:27017"]
node-02:
image: teseladb/teseladb:<versión>
command: >
start --dbpath /data --bind_ip 0.0.0.0 --peer-listen 0.0.0.0:27100 --admin-listen 0.0.0.0:27200
--join node-01:27100 --enroll-token ${TOKEN_02}
volumes: ["node-02:/data"]
node-03:
image: teseladb/teseladb:<versión>
command: >
start --dbpath /data --bind_ip 0.0.0.0 --peer-listen 0.0.0.0:27100 --admin-listen 0.0.0.0:27200
--join node-01:27100 --enroll-token ${TOKEN_03}
volumes: ["node-03:/data"]
volumes:
node-01:
node-02:
node-03:Arranca el primer nodo y crea los tokens
Shell
docker compose up -d node-01
export TOKEN_02=$(docker compose exec node-01 teseladb admin --dbpath /data token create --ttl 1h)
export TOKEN_03=$(docker compose exec node-01 teseladb admin --dbpath /data token create --ttl 1h)Arranca los otros dos
Shell
docker compose up -d node-02 node-03Comprobar
Cuando los tres contenedores están en marcha, docker compose exec node-01 teseladb admin --dbpath /data nodes lista
los tres nodos como activos.
Problemas frecuentes
- Un nodo no entra porque su token caducó o ya se usó. Crea otro y vuelve a arrancar ese servicio.