Contenidos
¿Qué son los Contenedores de Docker?
Un contenedor es la autentica aplicación corriendo sobre Docker, un contenedor esta basado en una imagen, podemos ejecutar varios contenedores de la misma imagen. Como vinimos poniendo de ejemplo del post anterior imaginemos que tenemos una imagen Docker que hemos descargado del Hub de Docker, esta imagen es un WordPress, con sus archivos PHP, su base de datos y su server Apache. Ahora queremos ejecutar dos contenedores para dos lugares diferentes de nuestro WordPress, tendremos dos blogs diferentes pero que vienen de una misma imagen.
Ejecutar un contenedor.
Una vez hemos bajado la imagen de Docker, como ya habíamos visto. Es hora de hacerla funcionar, simplemente con el comando Docker Run:
1 | docker run -d --name nombre_contenedor -p 3000:80 nombre_imagen |
Ahora veremos que es cada cosa:
- -d: para ejecutar en segundo plano.
- nombre_imagen: es para buscar el nombre de nuestra imagen, recuerda que para ver nuestras imágenes docker images.
- –name nombre_contenedor: El nombre que tendrá nuestro contenedor, si no colocamos –name Docker creará una imagen con un nombre aleatorio.
- -p 80:80: Estamos diciendo que el puerto de nuestra maquina apunta a un puerto concreto de Docker, el 80.
Ahora vamos a ejecutar un segundo contenedor, incluso de la misma imagen, para tener nuestros dos WordPress por ejemplo, o para tener distintas aplicaciones:
1 | docker run -d --name nombre_contenedor -p 3001:80 nombre_imagen |
Como vemos hemos tenido que cambiar el puerto pues el 80 ya apunta a otro contenedor, si esto lo hacemos con la imagen de WordPress con localhost:80 iríamos a nuestro primer contenedor y con localhost:81 iríamos al segundo.
Mostrar Contenedores Corriendo
Ahora queremos ver todos los contenedores que tenemos levantados y funcionando:
1 | docker ps |
En la imagen se muestra como he intentado levantar 3 contenedores uno me dio un fallo por no tener la base de datos y como se muestran todos:
Parar un contenedor
Para para un contenedor usaremos:
1 | docker stop nombre_contenedor |
Ahora con el Docker ps no nos mostraría este contenedor al estar desactivo por lo que usaremos:
1 | docker ps -a |
Borrar contenedores
Ahora lo que queremos es borrar un contenedor especifico, de esta forma ya no aparecerá tampoco con Docker ps -a.
1 | docker rm nombre_contentedor |
Este es el resultado de parar un contenedor, como no se ve al colcar Docker ps, posteriormente lo borré y ya no aparece ni si quiera con docker ps -a
Crear una imagen de un contenedor
Lo último que nos queda es: crear una imagen de un contenedor, esto no sirve para tener copias de seguridad o para exportar el contenido, por ejemplo porque cambiamos de hosting. Y simplemente con el siguiente comando:
1 | docker commit -m comentario -a autor nombre_imagen:etiqueta_imagen |
Siendo:
- autor: Vuestro nombre, en mi caso Drouiz.
- nombre_imagen:etiqueta_imagen: podria ser drouiz/wordpress
Una vez hecho ponéis docker images y debería apareceros la nueva imagen creada.
Parar o Borrar todos los contenedores:
Si quereís dejar limpio vuestro sistema de contenedores podeís usar los siguientes comandos:
Parar todos los contenedores
1 | docker stop $(docker ps -a -q) |
Eliminar todos los contenedores
1 | docker rm $(docker ps -a -q) |
Resumen
Como veis cargar contenedores Docker es algo realmente sencillo, imaginad que tenéis un WordPress estandar para todos vuestros clientes con una serie de plugins que son los que más usáis, pues con Docker se puede exportar con facilidad a cada nuevo hosting.