Reto 6. "Contenedorizar" una aplicación usando Dockerfiles y despliegue
Clase 27 de 48 • Curso de Arquitectura de Aplicaciones con Docker 2018
Contenido del curso
Contenedores: ¿Qué son?
- 1

Contenedores: Qué son y cómo encajan con DevOps
08:35 min - 2

Ejemplo: Casos de uso de contenedores en las empresas
01:40 min - 3

Bases físicas y lógicas de los contenedores
02:35 min - 4

Reto 1. Herramientas necesarias para trabajar con Docker
07:44 min - 5

Reto 2. Sistemas de contenedores: historia, parecidos y diferencias
01:34 min
Uso básico de contenedores
- 6

Retos en la instalación de Docker en diferentes sistemas
11:25 min - 7

Validación de post instalación de Docker
02:44 min - 8

Uso básico de Docker: Imágenes, contenedores de Docker
13:25 min - 9

¿Qué hay en un contenedor?
10:41 min - 10

Volúmenes y almacenamiento de la información en contenedores
03:03 min - 11

Gestionando los contenedores instalados
08:21 min - 12

Reto 3. Trabajando con imágenes 'oficiales'
01:19 min - 13

Solución al reto 3
04:26 min - 14

Reto 4. Uso de imágenes locales
00:55 min - 15

Plugins: funcionalidad añadida y algún plugin interesante
06:56 min - 16

Configuración de Docker
00:59 min
Microservicios; APIs con REST
- 17

Protocolo HTTP, órdenes y mensajes de estado
04:22 min - 18

Qué es un API REST y buenas prácticas en su diseño
04:15 min - 19

Implementando un API REST en diferentes lenguajes
02:52 min - 20

Implementando un API REST en Python y ejecutándolo
04:24 min - 21

Reto 5. Diseño de una estructura de datos básica en Python
01:38 min
Contenedores y microservicios
- 22

Aislando microservicios en contenedores: Uso de Dockerfiles
11:31 min - 23

Puertos y cómo configurarlos
07:59 min - 24

Invocando contenedores
06:53 min - 25

ENTRYPOINT y CMD
03:52 min - 26

Trabajando con datos: Volúmenes
04:42 min - 27

Reto 6. "Contenedorizar" una aplicación usando Dockerfiles y despliegue
Viendo ahora - 28

Herramientas básicas en arquitecturas de microservicios
02:29 min - 29

Instalación de docker-compose
02:32 min - 30

Componiendo servicios con docker-compose.
09:30 min - 31

Usando docker stack deploy
05:39 min - 32

Creando puentes de red
08:42 min - 33

Reto 7. Desplegando un microservicio en la nube usando PaaS
01:42 min
Despliegue de contenedores en la nube
- 34

Instalación del cliente de Azure
03:14 min - 35

Clientes de servicios cloud y como usarlos en nuestra aplicación
13:37 min - 36

Creación de un contenedor en la nube
08:08 min - 37

Despliegue seguro de microservicios
07:44 min - 38

Integrando contenedores en aplicaciones en la nube
04:49 min - 39

Instalando Docker Cloud
01:54 min - 40

Iniciación al API de Docker Cloud
07:35 min - 41

Usando cloud.docker.com
07:01 min - 42

Uso de Docker Cloud, cómo desplegar un servicio en un contenedor
07:40 min - 43

Cómo desplegar un stack
10:43 min - 44

Reto 9: desplegando en una nube comercial
01:37 min
Orquestación de contenedores
Introducción
El crear un contenedor para una aplicación permite desplegarla con facilidad en cualquier sistema en la nube; desplegar consiste en empaquetar una aplicación y arrancar los servicios necesarios para que se ejecute en la nube.
En general, el despliegue de una aplicación necesitará varios pasos que comienzan con la transferencia de los fuentes y terminan con la ejecución de los diferentes servicios por orden. Docker permite llevar a cabo todos estos pasos de forma local para tener, como en un tupperware, todo lo necesario para que se ejecute a tu disposición.
Generar un Dockerfile consiste, pues, en crear dentro de un contenedor el entorno adecuado para que la aplicación se ejecute. En las diferentes órdenes se tendrá que tener en cuenta lo siguiente:
- Elegir la imagen base adecuada.
- Copiar todos los ficheros necesarios o descargar el repositorio completo y mediante un fichero .dockerignore evitar los ficheros que no se quieran incluir.
- Establecer las variables de entorno que la ejecución del programa necesite.
- Ejecutar las órdenes para instalar las dependencias del sistema operativo y las de la propia aplicación (bibliotecas).
- Establecer una orden que será la que se ejecute cuando se haga docker run.
Este contenedor se usará para construir una imagen que se almacenará localmente y se podrá ejecutar tanto localmente como en cualquier otro lugar.
Tip
En vez de crear el Dockerfile directamente, se pueden ejecutar todas las órdenes en el sistema base y trasladarlas al Dockerfile cuando nos aseguremos de que está todo funcionando.
Posibles fuentes de problemas
Los servicios que no se ejecutan con privilegios de súper-usuario tienen que usar puertos por encima del 1024. Para las pruebas, usar siempre este tipo de puertos.
En algunas instalaciones de red local (por ejemplo, en mi universidad o en algunas instalaciones corporativas) puede haber problemas con el acceso a Internet desde dentro del contenedor. En ese caso habrá que cambiar la configuración y añadir DNSs externos.
Reto:
Contenedorizar el servicio web creado anteriormente y desplegarlo. Previamente habrá que:
- Darse de alta en Docker Hub.
- Darse de alta en sloppy.io, que da un período de prueba de un mes.
Una vez creado el contenedor, dar de alta el repositorio en Docker Hub para que se reconstruya automáticamente cada vez que se haga push en el repositorio de GitHub. Hacer trigger del build para que construya la primera versión; a partir de ese momento se hará automáticamente. Normalmente tarda alrededor de media hora.
Cuando esté listo en Docker Hub, crear un proyecto en sloppy.io y desplegar el contenedor, configurando desde la web el despliegue del mismo.