1. Crea 5 contenedor a partir de la imagen
ubuntu:latest
sin especificar nombre
2. Verifica que los has creado
Revisa con cuidado
🔍 Reflexiona
Observa que te tienen que salir en estado created
Has de intentar enteder qué implica este estado y ver que en este contenedor no puedo ejecutar nada hasta que no
esté en estado Up
Observa igualmente el nombre que el sistema le a asignado al contenedor
3. Verifica que los has creado
Revisa con cuidado
🔍 Reflexiona
Observa que si solo escribes docker ps no sale nada
Esto es porque docker ps solo muestar los contenedores que están en estado Up
4. Borra todos los contenedores y verificalo
5. Crea un contenedor llamado
web
a partir de la imagen
ubuntu:latest
parámetros
:woman_detective: revisa los parámetros
Puedes ver los parámetros de un comando con docker help comando
seguimos usando el comando create para crear contenedores
6. Arranca el contenedor
7. Observa su estado
parámetros
🔍 estados del contenedor
Entender los estados del contenedor al principio cuesta
Un contenedor, cuando lo arrancamos ejectua el servicio o programa que tenga asignado estado Up y luego se detiene
estado Exited
Al revisar este ejercicio verás que el contenedor pasa directamente a estado Exited, y es porque el contenedor al
estar creado a partir de la imagen ubuntu:latest sí que tiene asociado un commando (revisa la columna COMMAND)
Pero como no tiene ningún terminal asociado para interactuar con él, no hace nada y muere
8. Borra todos los contenedores
9. Crea un contenedor llamado web que permita ejecutar comandos en un terminal de forma interactiva a partir de la imagen ubuntu_latest
Usa Help
:woman_detective: revisa los parámetros
Puedes ver los parámetros de un comando con docker help comando
En este caso docker help create
En este caso lo podemos asociar con el comando -t para terminal y -i para ineteractive
10. Arranca el contenedor
Parámetros
:woman_detective: revisa los parámetros
Para arrancar docker start
11. Ejecuta de forma interactiva (-i) en un terminal (-t) un comado bash
Parámetros
:woman_detective: revisa los parámetros
Revisa el comando docker exec
Los parámetros -i y -t
el orden es primero especificar el contenedor y luego el comando
bash es un programa que sirve para interpretar comandos, como cuando abrimos un shell en windows
12. Para el contenedor
13. Revisa su estado
14. Borra todos los contenedores
15. Crea un contenedor llamado
web
que se quede arrancado a partir de la imagen
ubuntu_latest
Los estados del contenedor
🕵️♂️
Si queremos dejar el contenedor en estado Up debemos usar el comando docker run
No es necesario, pero mejor especifica el comando al final (bash)
Aunque el orden de los parámetros no es importante, la solución tiene uno concreto, pero eso podría cambiar
16. Instala apache2 y php en el contendor web
instando: apt update
📚
Una vez dentro lo primero que hay que hacer es apt update
se pueden instalar todos los paquetes a la vez
con -y no nos preguntará si queremos instalarlo
php implica dos paquetes php, el intérprete, y el módulo que viene con apache para que apache sepa que un determinado recurso que tiene extensión php, tiene que llamar al intérprete para que lo ejectue, este es el paquete libapache2-mod-php
17. Arranca el servicio de apache
parando y arrancando
▶️ 🛑
*Prueba a pararlo (stop), a ver su estado (status) y volverlo a arrancar (start|restart)
18. Borra el contendor web
Warning
💡
Antes de elimniar el contenedor tiene que estar parado
19. Crea igual que antes el contenedor web, pero mapeando el puerto
8000:80
Recuerda
⚠️ Muy importante
Es muy importante que entiendas el concepto
20. Instala apache2 y php en el contendor web
>
3 - Contenedores
Contenedores => imágenes
❗ Como crear nuestras imágenes
En esta sección realizaremos acciones para pasar crear nuestras imágenes a partir de contenedores
Una imagen es la plantilla para un contenedor, y contiene un sistema de archivos con una determinada versión de sistema operativo a partir del sistema operativo del anfitrión, y una serie de programas o servicios que se han añadido
La forma de construir una imagen es en capas, según le vamos añadiendo elementos.
La idea es tener un contenedor según nuestra necesidad, y con él, crear una imagen
:
1. Crea una imagen llamada
web:v1
a partir del conenedor
web
Revisa
🔍 verifica antes
Revisa que tienes ese contenedor creado en el ejercicio anterior
En este ejercicio teníamos apache y php y tenemos realizado el forward del puerto 8000:80
2. Verifica que has creado la imagen
3. Crea con run, un contenedor, pero compartiendo una carpeta
Recuerda
📝 Revisa los comandos
Mira la ayuda del comando run , revisa la opción -v
La carpeta en local la crearemos en el directorio actual y la llamaremos app
En el docker la carpeta serán /var/www/html que es dónde apache va a ir buscar los recursos cuando se los soliciten su DocumentRoot
Ten cuidado con el caracter de separar directorios, en windows es "\" en linux y mac es "/"
4. Crear un fichero tar llamado web.tar con el contenedor
Interesante
#####🌟 Puede ser que quieras tener tu imagen en un fichero
Con este comando vamos a crear un fichero tar a partir de un contenedor
El contenedor tiene que estar parado stop.
Con la opción -o especificamos el nombre del fichero tar
Lo que se almacena en el fichero tar es la imagen del contenedor, es decir me guardo una image, luego cuando lo exporte, __exportaré una imagen de la cual tendré que crear un contenedor 📝 Muy interesante reflexionar y entender este pequeño escenario
5. Crea una imagen llamada
web:v2
a partir del fichero
web.tar
6. Confirma que lo has creado
7. Crea un contenedor llamado web2 a patir de la imagen web:v2
Warning
Realiza el forward de los puertos 8002:80 (seguramente el 8000 esté ocupado)
Mapea o crea el volumen de capetas .\app:/var/www/html
🔍 En la solución he puesto el nombre que corresponde a mi namespace, que es el nombre de usuario de docker hub, manolo, para especificar en nameespace, cada una tendréis el vuetro propio.