Creando servicios en Docker Swarm

Clase 8 de 24Curso de Swarm

Resumen

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.

¿Qué comando ejecutar?

docker service create --name pinger alpine ping www.google.com
  • Asignas nombre con --name pinger.
  • 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?

docker service ls
  • 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?

docker ps
  • 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.

      Creando servicios en Docker Swarm