Introducción a Docker
Docker: Contenedores para Desarrollo y Despliegue de Aplicaciones
Introducción a Docker
¿Qué es Docker?
Docker es una plataforma que permite desarrollar, enviar y ejecutar aplicaciones en contenedores.
Un contenedor es una unidad estándar de software que empaqueta el código y todas sus dependencias, permitiendo que la aplicación se ejecute rápidamente y de manera confiable en cualquier entorno.
IMÁGENES
Para gestionar las imágenes, se utiliza el comando:
sudo docker image OPCIONESPara descargar una imagen:
sudo docker image pull REPOSITORIO
sudo docker pull REPOSITORIOPara ver las imágenes ya descargadas:
sudo docker image ls
sudo docker image rm IMAGEN
Cosas importantes a saber antes de crear un contenedor Docker:
El contenedor no tendrá nada instalado por defecto, lo primero que se hará es un apt-get update para descargar los repositorios del sistema
Una vez dentro del contenedor se puede escribir exit y se saldrá del contenedor, pero se perderá toda la información del contenedor, archivos, aplicaciones, instalaciones… (después se verá como salir sin cerrar el contenedor)
Por defecto, y como se ha mostrado anteriormente, la instalación de Docker crea un contenedor llamado hello-world. Para ver las imágenes que hay descargadas se ejecuta .
$ docker images
El paso de ahora es muy importante, pues no se puede salir del contenedor con exit. Para salir y dejar el contenedor abierto se hará con una combinación de teclas, ctrl q + p. Una vez pulsadas se pueden ver los contenedores activos con $ docker ps
Docker le asigna el nombre DEBRASP al contenedor, que es el que se le ha asignado anteriormente con el argumento "--name=". Si se cierra y se vuelve a abrir el contenedor y no le asignamos nombre, asignará un nombre aleatorio, pero mientras permanezca activo utilizará ese. Si por lo que sea se quiere volver a acceder a ese contenedor se haría con el comando:
$ docker attach DEBRASP,
Esto se podría hacer con un contenedor que esté abierto, si se lanza un contenedor y se le asigna un puerto y está cerrado se bloquea la máquina y habrá que apagarla por la fuerza.
Tienes dos opciones principales para trabajar con Docker:
Usar imágenes existentes en Docker Hub:
Docker Hub es un repositorio en línea que contiene miles de imágenes preconstruidas para una variedad de aplicaciones y servicios. Puedes buscar y descargar estas imágenes directamente desde Docker Hub utilizando el comando docker pull <imagen>. Estas imágenes están listas para ser ejecutadas y a menudo incluyen configuraciones comunes y optimizadas.
Crear tus propias imágenes utilizando Dockerfile:
Si necesitas una configuración personalizada o específica, puedes crear tus propias imágenes mediante un archivo Dockerfile. Un Dockerfile es un script de texto que contiene una serie de comandos que Docker ejecuta para construir una imagen. Esto te permite definir exactamente qué software y configuraciones se deben incluir en tu contenedor.
Componentes de Docker
Docker Engine: Motor central que corre y gestiona contenedores.
Docker Imágenes: Una imagen Docker es una plantilla de sólo lectura utilizada para crear contenedores. Incluye todo lo necesario para ejecutar una aplicación, como el código, las bibliotecas y las herramientas del sistema. Las imágenes suelen construirse a partir de archivos Dockerfile o garlas de docker hub.
Dockerfile: Un Dockerfile es un archivo de texto que contiene instrucciones sobre cómo construir una imagen Docker. Describe pasos como la instalación del software, la copia de archivos y la configuración del entorno necesario para ejecutar la aplicación.
Centro Docker: Docker Hub ies un registro público donde puedes almacenar, compartir y descargar imágenes Docker. Sirve como repositorio central de imágenes Docker, permitiendo una fácil distribución y reutilización de entornos preconfigurados.
Docker Build: Comando que permite construir una imagen a partir de un Dockerfile. Se usa para generar imágenes personalizadas con configuraciones específicas. Ejemplo: docker build -t mi-imagen .
Docker Compose: Herramienta que permite definir y ejecutar múltiples contenedores en conjunto mediante un archivo
docker-compose.yml.
Facilita la administración de entornos complejos, como aplicaciones con bases de datos, servidores web y microservicios. Se ejecuta con docker-compose up -d.
Volúmenes: Los volúmenes son una forma de persistir los datos generados y utilizados en los contenedores Docker. Te permiten gestionar y almacenar datos fuera del ciclo de vida del contenedor, garantizando que los datos importantes no se pierdan cuando los contenedores se detienen o se eliminan.
Redes: Las redes Docker facilitan la comunicación entre contenedores. Cada contenedor puede conectarse a una o varias redes, lo que les permite interactuar y compartir datos de forma segura.
Comandos Básicos de Docker
docker run: Ejecutar un contenedor.
docker run -it ubuntu
docker build: Construir una imagen a partir de un Dockerfile.
docker build -t myapp .
docker ps: Listar contenedores en ejecución.
docker ps
docker stop: Detener un contenedor.
docker stop <container_id>
Flujo de Trabajo con Docker
1️⃣ Crear un Dockerfile: Define el entorno, dependencias y configuraciones necesarias para la aplicación.
2️⃣ Construir la Imagen con Docker Build: Utiliza el Dockerfile para crear una imagen personalizada con el comando:
docker build -t nombre-imagen .
3️⃣ Definir la Orquestación con Docker Compose (opcional, si hay múltiples servicios):
Crea un archivo docker-compose.yml para gestionar varios contenedores y configuraciones en conjunto.
Usa docker-compose up -d para levantar todos los servicios automáticamente.
4️⃣ Ejecutar el Contenedor:
Si usaste Docker Build, ejecuta la imagen manualmente con:
docker run -p 8080:80 nombre-imagen
Si usaste Docker Compose, simplemente ejecuta:
docker-compose up -d
5️⃣ Administrar Contenedores: Supervisar, detener o eliminar contenedores en ejecución con comandos como:
docker ps → Ver contenedores en ejecución.
docker stop ID_CONTENEDOR → Detener un contenedor.
docker rm ID_CONTENEDOR → Eliminar un contenedor detenido.
Conclusión
Docker simplifica la creación, despliegue y ejecución de aplicaciones.
Aporta consistencia, portabilidad, escalabilidad, y aislamiento.
Con Docker, puedes asegurar que tu aplicación funcione igual en cualquier entorno, optimizando el ciclo de vida del desarrollo de software.
### Introducción a Docker
Docker es una plataforma de contenedorización que permite a los desarrolladores empaquetar sus aplicaciones y dependencias en un contenedor. La contenedorización facilita la creación, despliegue y ejecución de aplicaciones de manera consistente.
### ¿Cómo funciona Docker?
Docker utiliza imágenes y contenedores:
- **Imagen:** Es una plantilla de solo lectura que define el contenedor. Puede estar basada en una imagen oficial de Docker o personalizada.
- **Contenedor:** Es una instancia de una imagen en ejecución. Es un entorno aislado donde se ejecuta la aplicación.
Imágenes: Una imagen Docker es una plantilla de sólo lectura utilizada para crear contenedores. Incluye todo lo necesario para ejecutar una aplicación, como el código, las bibliotecas y las herramientas del sistema.
Dockerfile: Un Dockerfile es un archivo de texto que contiene instrucciones sobre cómo construir una imagen Docker. Describe pasos como la instalación del software, la copia de archivos y la configuración del entorno necesario para ejecutar la aplicación.
Centro Docker: Docker Hub ies un registro público donde puedes almacenar, compartir y descargar imágenes Docker. Sirve como repositorio central de imágenes Docker, permitiendo una fácil distribución y reutilización de entornos preconfigurados.
Docker Build: Comando que permite construir una imagen a partir de un Dockerfile. Se usa para generar imágenes personalizadas con configuraciones específicas. Ejemplo:
docker build -t mi-imagen .
Docker Compose: Herramienta que permite definir y ejecutar múltiples contenedores en conjunto mediante un archivo docker-compose.yml. Facilita la administración de entornos complejos, como aplicaciones con bases de datos, servidores web y microservicios. Se ejecuta con docker-compose up -d.
Volúmenes: Los volúmenes son una forma de persistir los datos generados y utilizados en los contenedores Docker. Te permiten gestionar y almacenar datos fuera del ciclo de vida del contenedor, garantizando que los datos importantes no se pierdan cuando los contenedores se detienen o se eliminan.
Redes: Las redes Docker facilitan la comunicación entre contenedores. Cada contenedor puede conectarse a una o varias redes, lo que les permite interactuar y compartir datos de forma segura.
Tienes dos opciones principales para trabajar con Docker:
Usar imágenes existentes en Docker Hub:
Docker Hub es un repositorio en línea que contiene miles de imágenes preconstruidas para una variedad de aplicaciones y servicios. Puedes buscar y descargar estas imágenes directamente desde Docker Hub utilizando el comando docker pull <imagen>. Estas imágenes están listas para ser ejecutadas y a menudo incluyen configuraciones comunes y optimizadas.
Crear tus propias imágenes utilizando Dockerfile:
Si necesitas una configuración personalizada o específica, puedes crear tus propias imágenes mediante un archivo Dockerfile. Un Dockerfile es un script de texto que contiene una serie de comandos que Docker ejecuta para construir una imagen. Esto te permite definir exactamente qué software y configuraciones se deben incluir en tu contenedor.
Generar un contenedor de imágenes a partir de un Dockerfile. Un Dockerfile es un archivo de texto que contiene un conjunto de instrucciones con todos los comandos dependientes.
Dockerfile es un archivo de texto que contiene un conjunto de comandos DOCKER. Dockerfile contiene comentarios para describir la línea de comandos.
El comando ps se usa con Docker para enumerar todos los contenedores.
docker ps
### 10 comandos más útiles de Docker
docker version
docker-compose version
1. `docker --version`: Ver la versión de Docker instalada.
2. `docker pull <imagen>`: Descargar una imagen desde Docker Hub.
3. `docker build -t <nombre_imagen> .`: Construir una imagen desde un Dockerfile en el directorio actual.
4. `docker run -d -p <puerto_host>:<puerto_contenedor> <imagen>`: Ejecutar un contenedor en modo desatendido (detached) y mapear puertos.
5. `docker ps`: Listar contenedores en ejecución.
6. `docker stop <id_contenedor>`: Detener un contenedor en ejecución.
7. `docker rm <id_contenedor>`: Eliminar un contenedor detenido.
8. `docker rmi <id_imagen>`: Eliminar una imagen.
9. `docker exec -it <id_contenedor> /bin/bash`: Acceder a un contenedor en ejecución con una terminal interactiva.
10. `docker logs <id_contenedor>`: Ver los logs de un contenedor.
### Crear un contenedor Docker con PHP
1. **Instalar Docker:**
- Descargar e instalar Docker desde [https://www.docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop) según tu sistema operativo.
2. **Crear un Dockerfile:**
- En un directorio vacío, crear un archivo llamado `Dockerfile` y agregar el siguiente contenido: ```Dockerfile
# Usar la imagen base oficial de PHP
FROM php:7.4-cli
# Copiar los archivos del proyecto al contenedor
COPY . /usr/src/myapp
# Establecer el directorio de trabajo
WORKDIR /usr/src/myapp
# Ejecutar el archivo PHP al iniciar el contenedor
CMD [ "php", "./tu_archivo.php" ]
```
3. **Construir la imagen:**
- En la terminal, navegar al directorio donde se encuentra el Dockerfile y ejecutar:
```
docker build -t mi_php_app .
```
4. **Ejecutar el contenedor:**
- Una vez construida la imagen, ejecutar el contenedor:
```
docker run -it --rm --name mi_php_cont mi_php_app
```
¡Y eso es todo! Ahora tus alumnos deberían tener una comprensión básica de Docker y los pasos para crear un contenedor con PHP. Si tienes alguna pregunta adicional, ¡estaré encantado de ayudar!
Configura el repositorio apt de Docker:
Ejecuta los siguientes comandos:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Instala paquetes Docker:
Instala el motor Docker y otros componentes necesarios:
sudo apt-get install docker-ce docker-ce-cli containerd.io
Verifica la instalación:
Ejecuta el siguiente comando para comprobar si Docker está instalado:
sudo docker --version
Ejecuta tu primer contenedor
sudo docker run hello-world
Comentarios
Publicar un comentario