No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Swarm

Curso de Swarm

Guido Vilariño

Guido Vilariño

Exponiendo aplicaciones al mundo exterior

14/24
Recursos

Aportes 18

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Entendido. Yo cree mi propio entrono en máquinas virtuales con vmware y Ubuntu server 18.04 y todo funciona correctamente.

docker build -t baezdavidsan/swarm-hostname
docker login
docker push  baezdavidsan/swarm-hostname:latest
docker node ls
docker service create --name app --publish 3000:3000 --replicas=3 baezdavidsan/swarm-hostname:latest
docker service create --name app -d --publish 3000:3000 --replicas=3 baezdavidsan/swarm-hostname:latest
curl http://192.168.5.153:3000/

Les dejo el comando para lanzar la aplicación

docker service create -d --name app --publish 3000:3000 --replicas=3 gvilarino/swarm-hostname

Para los usuarios de Apple Silicon (M1, M2…), recordad que al construir la imagen es necesario utilizar buildx --platform linux/amd64
El comando quedaría así:

docker buildx build --platform linux/amd64 -t <ID-usaurio>/swarm-hostname .

Si no hacemos esto, y subimos la imagen en formato linux/arm64, al crear el servicio y hacer un

docker service ps app

nos mostrará el error: “no suitable node (unsupported platform on X nodes)”

Repositorio de la clase: https://github.com/platzi/swarm

– Vamos a buildear nuestra imagen a nuestra cuenta de Docker Hub

git clone https://github.com/platzi/swarm.git
cd swarm/hostname
docker build -t <usuario>/swarm-hostname .
docker push <usuario>/swarm-hostname

– Vamos a usar uno de los templates pre hechos para iniciar docker swarm (3 Managers and 2 Workers). Iniciando de nuevo https://labs.play-with-docker.com/. Nos situamos en nuestro manager1

docker node ls
docker service create -d --name app --publish 3000:3000 --replicas=3 borisvargas/swarm-hostname
docker service ps app

Si mi maquina no tiene la versión más nueva de windows home para tener docker. ¿Cómo puedo contectarme al repo directamente desde play with docker?
Estoy aprendiendo mucho con el curso.

labs.play esta sin capacidad, si es importante que cerremos las sesiones si no las estamos usando!!

We are really sorry but we are out of capacity and cannot create your session at the moment. Please try again later.

Una consulta , por que al actualizar el navegador no cambia el hostname , pero al realizarlo con curl si cambia en cada petición ?

hola, estaba probando con imagenes privadas y para hacer pull lo obio es: primero logearse y segundo hacer pull.
sin embargo al parecer con swarm cada nodo hace un pull independiente asi que el desplieque fallaba en los workers.
consultando me encontre con el comando docker service create -d --name app --publish 3000:3000 --with-registry-auth --replicas=3 ghcr.io/erick-cordova/swarm-hostname espero les sirva salu2.

Crearemos una imagen con el archivo Dockerfile para Docker y la publicaremos en Dockerhub, ya que los nodos de nuestro Swarm tienen que descargar una imagen para su instancia.
–publish = al usar -p en Docker para abrir un puerto.
Por Default, Docker le asigna a las tareas un ID al HOST del Container, es por eso que en la aplicación, al pedir el Hostname, se muestra el ID de los contenedores.

docker service create -d --name app --publish 3000:3000 --replicas=3 gvilarino/swarm-hostname

Este comando lo que hace es exporte un puerto y tomar una imagen que ya esta en docker swarm https://hub.docker.com/r/gvilarino/swarm-hostname/tags
para poder correr los servicios.

En mi caso, un experimento en local, con solo tres nodos y dos contenedores,

Tengo una duda tengo 3 maquinas virtuales magager(192.168.10.1), worker1(192.168.10.2), worker2(192.168.10…3)

Cuando creo el servicio con replica=2 se desplienta en el manager y el worker2

Si hago curl al manager “curl http://192.168.10.1:3000” y al worker2 curl http://192.168.10.1:3000 todo funciona normalmente, pero cuando hago lo mismo al worker1 presento el siguiente error
curl: (7) couldn’t connect to host

Me pueden decir que estoy haciendo mal.

esta clase estuvo genial Gracias

Estoy confundido. La ip a la que se debe apuntar con el curl es la del manager leader o funciona igual para cualquier ip que sea parte del swarm?

En lo personal, me parece más legible invocar el mismo comando así:

$ docker service create --name <service-name> --publish published=<host-port>,target=<container-port> <image-name>

docker service create -d --name <servicename> --publish <porthost>:<portservice> --replicas=<n> <image>

docker service create -d --name app --publish 3000:3000 --replicas=3 gvilarino/swarm-hostname

El link parece no ser el correcto

alguien tiene el repositorio del proyecto?
Me aparece como 404.😦