‫¿Qué pasa con el Registro Docker en un enjambre?
‫En realidad no es muy diferente.
‫Lo bueno es que no tenemos que ejecutar un comando de ejecución de la ventana acoplable, podemos usar un comando de servicio acoplable como estamos
‫acostumbrados o un archivo de pila como hemos hablado en una sección anterior. Va a funcionar de la misma manera que
‫lo hicimos en el host local porque podemos simplemente decirle al enjambre que hable
‫consigo mismo para el registro.
‫Entonces usaremos la misma dirección 127 y no tenemos que habilitar el registro inseguro
‫porque eso ya está permitido por el Docker Engine. si fuera local, correcto, porque esa es la magia de la Malla de enrutamiento.
‫La malla de enrutamiento
‫básicamente permite que todos los nodos hablen con el registro como
‫Solo quiero recordarte que este es un contenedor de datos persistente.
‫Almacena datos que deben durar con el tiempo.
‫Entonces tendrás que lidiar con un tipo de escenario de producción del mundo real. Tendrá que lidiar con un controlador de
‫volumen y cómo tratar, y básicamente tomar una decisión sobre cómo va a almacenar los
‫datos.
‫Pero no haremos eso aquí.
‫Para este ejemplo con Swarm, en realidad voy a cambiarlo un poco y no usar el clúster de tres
‫nodos que había usado en una sección anterior.
‫De hecho, vamos a utilizar Play With Docker esta vez. Si solo vas a jugar con el acoplador. com, realmente vamos a
‫demostrar que no somos un robot y luego me hará algunas preguntas aleatorias, puede
‫que le pregunte, puede que no.
‫Entonces estamos adentro.
‫Recientemente, Play With Docker ha habilitado una nueva función que nos facilita aún más
‫la configuración de un formulario de prueba y el objeto llave inglesa.
‫Supongo que es una llave inglesa. Ves que hay opciones aquí que son básicamente plantillas
‫para configurar un enjambre, así que en lugar de mostrarte esta configuración como ya hicimos, voy a configurar
‫cinco gerentes, sin trabajadores, dale un segundo para lo configurará todo. Básicamente, con lo que vamos a comenzar
‫es un enjambre de cinco nodos. Simplemente vamos a ejecutar un registro muy
‫rápido para mostrar que es prácticamente lo mismo que antes.
‫Todo bien. Ahora tengo cinco nodos de administrador y si hice el nodo docker ls, puede ver que tengo cinco
‫de ellos.
‫Así que sí. Tenemos un enjambre usar el servicio crear y llamarlo registro.
‫De hecho,
‫simplemente ejecutemos el registro, pero esta vez vamos a
‫Vamos a publicarlo de nuevo como la última vez, el puerto 5000, y
‫vamos a, el registro de imágenes.
‫Ahí tienes.
‫Podemos hacer un registro ps del servicio Docker y dice que se está ejecutando. En Play With Docker, obtenemos este bonito y pequeño
‫botón que aparece cada vez que publicamos una aplicación web.
‫puerto y ofrece una pequeña y agradable URL amigable con la que podemos probar esa aplicación web o punto final web.
‫De hecho, expone el
‫Pero usted sabe que con Registry, en la
‫raíz, no es nada, no se devuelve nada que no sea un HTTP 200.
‫Sin embargo, lo que sí podemos hacer es con cualquier registro, podemos ir y mirar el catálogo
‫y devolver una matriz JSON simple.
‫Notarás que su repositorio está vacío.
‫Podríamos haber hecho esto en la conferencia anterior con eso localmente, pero juguemos un poco aquí ya
‫que estamos en esta solución fácil con Play With Docker.
‫Permítanme hacer lo mismo cuando hago un estibador como antes del mundo de hola. Ahora voy a hacer la etiqueta recordar nuevamente, por lo que
‫vamos a decir "hola mundo" y luego voy a cambiar el nombre o volver a etiquetar a un
‫nuevo repositorio 127. 0. 0. 1 5000, voy a
‫hacer un empuje de docker.
‫Permítanme acercar esto para que sea un poco más fácil para nosotros ver.
‫docker push.
‫Entonces vamos a hacer el 127. 0. 0. 1
‫OK Ahora lo llevó a nuestro repositorio. nombre del repositorio que está disponible.
‫La forma en que realmente podemos verificar, realmente rápido, es que si vas a esta otra pestaña y actualizaré, verás que los repositorios ahora muestran el
‫A medida que le agreguemos más, esto realmente expandiría la matriz y los veríamos a todos allí.
‫En este punto, podría hacer lo mismo que antes, ejecutar esa imagen, funcionaría como
‫esperábamos y ampliarla. Para tan solo
‫probar ese punto, puedo hacer un docker pull nginx.
‫nginx, la etiqueta docker nginx, y
‫luego la inserción del docker, y
‫volver a subirla a nuestro registro.
‫Podemos ejecutar un simple servidor web
‫Entonces verás aquí, que tengo dos ahora. Tengo dos repositorios allí. Entonces, si hice un
‫servicio de Docker, como
‫lo hacemos
‫normalmente,
‫bien, vamos a hacer el
‫nginx 80 80, pero esta vez voy a especificar la imagen como tal.
‫a la derecha, para comenzar el servicio y queremos usar esto.
‫Le
‫estamos diciendo que no queremos utilizar la imagen de Docker Hub,
‫Ahora vamos a agregar un par de opciones.
‫Realmente voy a hacer réplicas 5, de modo que un nginx se iniciará en cada nodo, y luego vamos
‫a hacer una nueva opción que comenzó a aparecer en el 17. 04 Creo que separar es igual a falso y esto nos permitirá ver
‫el comando ejecutándose en tiempo real.
‫Verás que se está preparando, lo que significa que básicamente está descargando esa imagen del
‫registro a los nodos, y luego se prepara y luego se está ejecutando.
‫Ahí vamos, hemos terminado.
‫Si lo hago, notarás que desde arriba, ahora muestra el puerto 80 porque es un servicio
‫nuevo, y verás que lo tengo aquí y está funcionando.
‫Lo interesante de esto es que cuando estás en un enjambre, no puedes usar una imagen que está solo en
‫un nodo,
‫¿verdad?
‫Un enjambre debe poder obtener imágenes en todos los nodos de algún repositorio en
‫un registro al que todos puedan acceder. poder ir a manager1 y obtenerlo, ¿verdad?
‫No mencioné eso en la sección de enjambre, pero es un punto importante porque eso significa que no puedes simplemente construir
‫una imagen propia en un local, digamos en este caso manager1, y manager2 no va
‫a
‫Todos tienen que hacer push y pulls desde un repositorio central en alguna parte.
‫Pero debido a que ejecuté el registro como un servicio aquí, todos pueden saber cómo acceder a 127 cero cero uno, y
‫luego la malla de enrutamiento realmente los guiará hacia el contenedor correcto, donde sea que ese registro se
‫ejecute en uno de los nodos, y luego llevará esa imagen nginx a todos los nodos, ya que Si realizó un servicio Docker ps nginx, verá que hay uno ejecutándose en cada nodo, y verá que la imagen que está utilizando es la
‫necesitan estar allí. de nuestro registro.
‫OK, entonces eso es solo por mostrar cómo Swarm es muy similar con Docker Registry.
‫Al final, como mencionamos, ese nuevo tidbit, que necesita para asegurarse de que sus imágenes que
‫utiliza en un enjambre sean accesibles en cualquier registro en el que se encuentren.
‫Deben ser accesibles por todos los nodos. Eso debería ser obvio, correcto, porque los nodos
‫no pueden compartir imágenes entre ellos. En realidad, todos tienen que sacarlos de un registro
‫y todos deben poder alcanzarlo.
‫Sucede que una malla de enrutamiento hace que sea mucho más fácil ejecutar eso.
‫uno de los alojados en Internet. Son redundantes.
‫Solo como un pequeño ProTip, si no tiene que ejecutar su propio registro, por muy interesante que sea, solo use Tienen monitoreo y todo lo relacionado con la administración del almacenamiento.
‫Por lo general, especialmente si lo hace de código abierto,
‫la mayoría de ellos son gratuitos.
‫Si lo hace por razones
‫privadas y necesita almacenar imágenes privadas, la mayoría de ellas tienen un costo muy razonable, es decir, muy bajo costo para almacenar sus imágenes.
‫muchas de las opciones que existen, yo diría que
‫pruebes primero y solo uses tu
‫propio registro si realmente tienes algún tipo de requisito fuera de línea en el que tiene que estar disponible. sin Internet, o si solo existe alguna restricción de seguridad que realmente no puede usar ninguna plataforma alojada.
‫Entonces, ya sea que uses un AWS o Quay o Docker Hub o Porque realmente es una de esas cosas en las
‫que es una utilidad y es genial cuando puedes confiar en alguien más para resolver ese problema por ti.
‫Así que espero que juegues con él y te diviertas.
‫Ahora que no esta conferencia, recuerde limpiar para que pueda comenzar con una
‫nueva pizarra en la próxima conferencia.
‫