
Uno de los dos sistemas de clustering más famosos para Docker, con docker swarm las máquinas se denominan nodos y se manejan a través de un conjunto de comandos docker node.
Los contenedores no se ejecutan en swarm se trabaja a un nivel más alto que se llama servicios. Arrancar un servicio es como arrancar un contenedor, pero un servicio puede arrancar múltiples instancias de un contenedor.
Una réplica es la instancia de un contenedor, puede haber varias réplicas arrancando desde la misma imagen con la misma configuración.
Comandos
- docker swarm init –advertise-addr w.x.y.z –listen-addr w.x.y.z
Arranca el host (nodo) en formato swarm y lo convierte en manager usando la dirección IP w.x.y.z (solo necesario si el host tiene varias IP) en esta dirección es donde estará escuchando peticiones, útil para escuchar peticiones desde el exterior en un entorno multicloud- La dirección IP actual donde donde debería estar escuchando el manager
- docker swarm join –token token host:port
Une el host (nodo) al swarm indicado en host:port, el token se obtiene a través de docker swarm init
- docker service create –name nombre –publish 80:80 autor/imagen –constraint ‘node.labels.cpu != armhf‘ –replicas –network web-net 3 user/image
Arranca un servicio en swarm- –constraint establece una restricción, en este caso en base a un tag y no arrancará nodos con ese tag
- –replicas indica el número de replicas a ejecutar
- –network red a la que asociarse, creada usando docker nework create
- docker service ls
Indica que servicios están arrancados - docker service ps [servicio]
Indica que servicios están arrancado que contenedores- Si se indica servicio se muestra la información de la máquina que lo está ejecutando de cara a poder acceder a ella
- docker service scale contenedor=5
Agrega cuatro replicas del contenedor a swarm.
- docker node update –label-add [cpu=armhf] [raspberrypi]
Inserta una etiqueta cpu=armhf en el nodo indicado raspberrypi
- docker network create -d overlay net01
Creación y opciones de creación de red- -d overlay indicar el tipo de red, normalmente es bridge, overlay es necesario para varios nodos usando swarm
- docker node ls
Permite ver todos los nodos y su estado actual