Si ya tienes tu swarm local activo, el siguiente paso es usar servicios en Docker Swarm para aprovechar sus ventajas por encima de ejecutar contenedores sueltos. Aquí aprenderás a crear un servicio con Alpine que hace ping, entender qué es un servicio y cómo verificar réplicas, modo e imagen, todo desde la terminal.
¿Por qué usar servicios en Docker Swarm?
En lugar de docker run o docker compose up, en Swarm trabajas con servicios: una entidad que agrupa y gestiona contenedores, similar al servicio de Docker Compose, pero específico de Swarm. El daemon en swarm mode ofrece más capacidades: orquesta contenedores, escala réplicas y gestiona imágenes.
Un servicio agrupa uno o varios contenedores.
Puedes escalar y administrar con un solo comando.
Swarm se encarga de crear y mantener los contenedores.
El daemon en modo Swarm añade funciones por encima de Docker tradicional.
¿Qué conceptos y palabras clave debes fijarte?
Servicio: entidad que agrupa contenedores y se escala.
daemon en swarm mode: mismo daemon con capacidades extra.
replicas: cantidad de contenedores por servicio; por defecto es 1.
image: la imagen Docker que el servicio necesita (ejemplo: Alpine).
node: el host donde Swarm ejecuta los contenedores (en este caso, uno solo).
Correspondencia servicio-contenedor: cada servicio despliega contenedores gestionados por Swarm.
¿Cómo crear tu primer servicio con docker service create?
Crearemos un servicio llamado pinger que use la imagen Alpine y ejecute ping a www.google.com. Swarm descargará la imagen si no está disponible localmente y levantará el contenedor correspondiente.
Usas la imagen Alpine, ligera y orientada a seguridad.
Defines el comando del contenedor: ping a www.google.com.
¿Qué salida esperar y qué significa?
Al presionar enter verás mensajes como “preparing”, “esperando que las tareas estén estables” y “los servicios convergieron”.
“preparing”: Swarm prepara el despliegue y descarga la imagen si falta.
“tareas estables”: comprueba que el contenedor está corriendo correctamente.
“servicios convergieron”: el servicio quedó operativo.
¿Cómo inspeccionar réplicas y contenedores asociados?
Una vez creado el servicio, puedes revisar su estado y el contenedor asociado. En un solo node podrás ver directamente el contenedor que Swarm lanzó por ti.
¿Cómo ver servicios activos?
dockerservicels
Muestra ID, nombre y modo del servicio.
Indica replicas: por defecto verás 1/1.
Señala la image usada: Alpine en este caso.
¿Dónde están los contenedores?
dockerps
Verás un contenedor creado por Swarm (no hiciste docker run).
Swarm asigna un nombre único, por ejemplo: pinger.1.x.
Confirma que está ejecutando el comando ping.
En síntesis: declaras “qué” con servicios y Swarm hace el “cómo”. Descarga imágenes cuando faltan, crea contenedores y mantiene el estado deseado.
¿Quieres seguir profundizando en servicios y ciclo de vida en Swarm? Cuéntame en los comentarios qué te gustaría automatizar o escalar con servicios.