Fundamentos y Práctica de Contenedores Docker: Ejercicios Resueltos

Clasificado en Informática

Escrito el en español con un tamaño de 3,79 KB

Ejercicios Tema 6 – SDIS

1. Enumera los tipos principales de contenedores

Existen tres tipos fundamentales:

  • Programas: Al terminar la ejecución, el contenedor se detiene. Se puede utilizar la entrada/salida (E/S) y todos los cambios se pierden tras la ejecución.
  • Servicios: Son programas que se mantienen en ejecución constante. Suelen requerir el mapeo de puertos para comunicarse y los cambios se pierden al detener el servicio.
  • Datos: Almacenan información y pueden exportar volúmenes que son utilizados por otros contenedores.

2. Describe brevemente en qué consiste el sistema de archivos en capas de los contenedores

El sistema de archivos funciona mediante capas de solo lectura superpuestas, donde la capa superior es propia del contenedor y permite la escritura. Este diseño aumenta la eficiencia, ya que solo se almacenan los cambios y las capas comunes complementan la información.

3. Enumera los elementos principales que se pueden configurar en un servicio mediante el archivo docker-compose.yml

Se pueden configurar diversos elementos, entre ellos:

  • image: Define la imagen que se utilizará para el servicio.
  • build: Permite especificar la ubicación del Dockerfile y construir una imagen personalizada.
  • ports: Configura el mapeo de puertos.
  • depends_on: Define los servicios de los que depende el contenedor actual.
  • links: Utilizado para enlazar servicios entre sí.
  • network: Configuración de redes.

4. ¿En general, podemos ejecutar contenedores de programas Windows en un servidor Linux?

No, cada uno requiere aplicaciones y servicios específicos adaptados a su propio entorno operativo.

5. ¿Qué comando docker utilizarías para ejecutar un servicio de datos MySQL que escuche en el puerto 3306?

El comando sería el siguiente:

docker run -d -p 3306:3306 --name nombre_del_contenedor -e MYSQL_ROOT_PASSWORD=contraseña_mysql mysql

6. ¿Cuántos nodos necesitamos como mínimo en Docker Swarm para tolerar un fallo y permitir detener otro nodo?

Para tolerar un fallo y tener la posibilidad de detener otro nodo, se requieren 3 nodos (cálculo: 1 fallo + 1 para detener = 2, siendo 3 > 5/2).

Ejercicio 7: Gestión de bases de datos MariaDB

1. Creación y prueba de una base de datos MariaDB

  1. Descarga de la imagen: docker pull mariadb
  2. Creación del contenedor: docker run -d --name contenedor -e MYSQL_ROOT_PASSWORD=contraseña_root mariadb
  3. Conexión y prueba: docker exec -it contenedor mysql -uroot -pcontraseña_root. Para comprobar el funcionamiento, ejecuta: SHOW DATABASES;

Nota: Tienes toda la información sobre cómo usar esta imagen en el repositorio oficial de MariaDB.

2. Persistencia de datos

Para asociar el directorio de la base de datos con un directorio del host:

  1. Detener y eliminar el contenedor existente:
    docker stop contenedor
    docker rm contenedor
  2. Crear el directorio en el host: mkdir /ruta/contenedor_data
  3. Crear el contenedor con volumen asociado:
    docker run -d --name contenedor -e MYSQL_ROOT_PASSWORD=contraseña_root -v /ruta/contenedor_data:/var/lib/mysql mariadb

Entradas relacionadas: