jueves, 20 de junio de 2019

Empezando a utilizar Docker como un verdadero DevOps

Ayer ya vimos cómo automatizar el proceso de descarga de Docker. Algo sencillo, así que hoy vamos a ir con algo un poco más complejo. Vamos a tocar archivos de configuración, crear imágenes, volúmenes, etc.



Os comento el escenario. Tenemos una nueva máquina, un servidor con Debian 9.9 y queremos utilizar ahí una base de datos mysql, nginx con gunicorn. Así que empecemos por una de las partes más simples, instalar la imagen de Mysql con docker. Algo sencillo.


Para descargar la imagen, nos basta con un docker pull mysql y se nos descargará. Pero ojo, podéis intentar introducir datos, pero en este momento es simplemente un contenedor que, dato que se meta, dato que no se guardará. Tendremos que crear contenedores. Vamos a utilizar Docker compose.




Primero tenemos el archivo docker-compose.yaml, este será el archivo principal y sobre el que tendremos que configurar todos los demás. Podréis sobreentender que, como mínimo, necesitaremos 2 archivos más, el Dockerfile y el .env.



El Dockerfile se basa en decirle a Docker qué queremos que haga, en este caso que cree una carpeta para logs e instale los requirements que sean necesarios.


En el archivo production.py, lo que vamos a hacer va a ser especificar ahora cuestiones concretas de la base de datos. Algo simple.



Tendríamos otro archivo que crear que se llame defaults.py, pero ese es más largo y me requiere detenerme más tiempo e incluso que explique más Python por el blog, así que me centraré en el .env, que serán las variables que se van a establecer, en este caso para la base de datos. Estas variables son fundamentales, sino cuando terminéis, veréis que no tenéis fallo pero que al listar los contenedores, veréis que el servicio está reiniciando constantemente. Ah, y ese usuario y contraseña que veis, no tiene por qué existir, no os preocupéis por eso.

Cuando terminemos, si no nos falta nada, sólo nos quedaría hacer docker-compose up y esperar a que se instale y configure todo. Puede llevar unos minuticos.



Cuando termine, si todo ha salido bien, podremos listar los contenedores que tengamos creado y veremos nuestro contenedor para, en este caso, mysql.

Y vemos que está up desde hace 8 horas. Esto lo que nos dice es que ya tenemos nuestra imagen de Docker y nuestro contenedor para no perder los datos, por lo que es ahora cuando podremos, en caso de tenerla, importar la backup, y recuerdo que esto se hace desde Docker también...pero eso lo seguiremos viendo otro día.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...