Podcast
Questions and Answers
¿Cuál de las siguientes opciones describe mejor la función del demonio de Docker?
¿Cuál de las siguientes opciones describe mejor la función del demonio de Docker?
- Gestionar objetos de Docker como imágenes, contenedores y redes, y escuchar peticiones a la API. (correct)
- Proporcionar una interfaz gráfica para que los usuarios interactúen con Docker.
- Actuar como la principal herramienta que los administradores de sistemas utilizan para crear imágenes de Docker.
- Almacenar imágenes de Docker para su reutilización.
Un contenedor de Docker es una plantilla de solo lectura que contiene las instrucciones para crear una imagen de Docker.
Un contenedor de Docker es una plantilla de solo lectura que contiene las instrucciones para crear una imagen de Docker.
False (B)
¿Cuál es el principal registro público de Docker donde se almacenan y descargan imágenes?
¿Cuál es el principal registro público de Docker donde se almacenan y descargan imágenes?
Docker Hub
Los __________ permiten escalar contenedores a través de múltiples demonios de Docker, trabajando conjuntamente como un enjambre.
Los __________ permiten escalar contenedores a través de múltiples demonios de Docker, trabajando conjuntamente como un enjambre.
Relacione los siguientes objetos de Docker con sus definiciones:
Relacione los siguientes objetos de Docker con sus definiciones:
¿Qué significa Docker CE?
¿Qué significa Docker CE?
Docker CE está disponible para sistemas operativos Windows y macOS.
Docker CE está disponible para sistemas operativos Windows y macOS.
Un contenedor está definido por la imagen de la que procede y:
Un contenedor está definido por la imagen de la que procede y:
¿Cuál de los siguientes comandos se utiliza para añadir un usuario al grupo de Docker en Linux?
¿Cuál de los siguientes comandos se utiliza para añadir un usuario al grupo de Docker en Linux?
Después de añadir un usuario al grupo de Docker, los nuevos permisos se aplican inmediatamente sin necesidad de cerrar sesión.
Después de añadir un usuario al grupo de Docker, los nuevos permisos se aplican inmediatamente sin necesidad de cerrar sesión.
¿Cómo se instala Docker Compose en sistemas Ubuntu o Debian utilizando el gestor de paquetes APT?
¿Cómo se instala Docker Compose en sistemas Ubuntu o Debian utilizando el gestor de paquetes APT?
Las imágenes de Docker son plantillas de ______ que sirven como base para crear contenedores.
Las imágenes de Docker son plantillas de ______ que sirven como base para crear contenedores.
¿Qué tipo de imágenes se recomienda buscar en el registro de Docker Hub para asegurar su calidad y mantenimiento?
¿Qué tipo de imágenes se recomienda buscar en el registro de Docker Hub para asegurar su calidad y mantenimiento?
Crear una imagen de Docker desde cero siempre es la opción más eficiente y recomendada.
Crear una imagen de Docker desde cero siempre es la opción más eficiente y recomendada.
¿Qué comando de Docker se utiliza para descargar una imagen desde un registro, como Docker Hub?
¿Qué comando de Docker se utiliza para descargar una imagen desde un registro, como Docker Hub?
Relacione las siguientes imágenes de Docker con su respectivo uso:
Relacione las siguientes imágenes de Docker con su respectivo uso:
Después de ejecutar sudo docker run hello-world
por primera vez, ¿qué indica la línea 'Unable to find image 'hello-world:latest' locally'?
Después de ejecutar sudo docker run hello-world
por primera vez, ¿qué indica la línea 'Unable to find image 'hello-world:latest' locally'?
El comando docker run -it ubuntu bash
inicia un contenedor Ubuntu y te da acceso a una terminal dentro de él.
El comando docker run -it ubuntu bash
inicia un contenedor Ubuntu y te da acceso a una terminal dentro de él.
¿Cuál es el primer paso que realiza Docker al ejecutar el comando sudo docker run hello-world
?
¿Cuál es el primer paso que realiza Docker al ejecutar el comando sudo docker run hello-world
?
El comando sudo docker run hello-world
intenta ejecutar un contenedor basado en la imagen llamada ______.
El comando sudo docker run hello-world
intenta ejecutar un contenedor basado en la imagen llamada ______.
Relacione los siguientes comandos de Docker con su descripción:
Relacione los siguientes comandos de Docker con su descripción:
¿Qué paso realiza el daemon de Docker después de contactar al registro de Docker Hub al ejecutar el comando sudo docker run hello-world
?
¿Qué paso realiza el daemon de Docker después de contactar al registro de Docker Hub al ejecutar el comando sudo docker run hello-world
?
La documentación oficial de Docker sugiere que la forma de instalar Docker es la misma para todas las distribuciones de Linux.
La documentación oficial de Docker sugiere que la forma de instalar Docker es la misma para todas las distribuciones de Linux.
Después de descargar la imagen, ¿qué hace el daemon de Docker antes de enviar la salida al cliente?
Después de descargar la imagen, ¿qué hace el daemon de Docker antes de enviar la salida al cliente?
¿Qué comando de Docker se utiliza para listar todos los volúmenes disponibles?
¿Qué comando de Docker se utiliza para listar todos los volúmenes disponibles?
Es seguro acceder directamente a los directorios del sistema donde se almacenan los volúmenes de Docker mientras un contenedor los está utilizando.
Es seguro acceder directamente a los directorios del sistema donde se almacenan los volúmenes de Docker mientras un contenedor los está utilizando.
¿Qué parámetro se utiliza en el comando docker run
para ejecutar un contenedor en segundo plano?
¿Qué parámetro se utiliza en el comando docker run
para ejecutar un contenedor en segundo plano?
Para eliminar un volumen de Docker que ya no está en uso, se utiliza el comando docker volume
_________.
Para eliminar un volumen de Docker que ya no está en uso, se utiliza el comando docker volume
_________.
¿Cuál de los siguientes motores de bases de datos es compatible con WordPress, según el contenido?
¿Cuál de los siguientes motores de bases de datos es compatible con WordPress, según el contenido?
El parámetro -p
en el comando docker run
se utiliza para configurar variables de entorno dentro del contenedor.
El parámetro -p
en el comando docker run
se utiliza para configurar variables de entorno dentro del contenedor.
¿Qué tipo de objetos de Docker pueden ser eliminados si no están en uso?
¿Qué tipo de objetos de Docker pueden ser eliminados si no están en uso?
Empareja los siguientes parámetros del comando docker run
con su función:
Empareja los siguientes parámetros del comando docker run
con su función:
¿Cuál de los siguientes comandos de docker-compose
es equivalente a la configuración mostrada en el ejemplo del archivo docker-compose.yml
para WordPress?
¿Cuál de los siguientes comandos de docker-compose
es equivalente a la configuración mostrada en el ejemplo del archivo docker-compose.yml
para WordPress?
Después de reiniciar una máquina, los contenedores Docker configurados sin la directiva restart
se inician automáticamente al arrancar el sistema operativo.
Después de reiniciar una máquina, los contenedores Docker configurados sin la directiva restart
se inician automáticamente al arrancar el sistema operativo.
¿Qué parámetro en Docker se utiliza para especificar el comportamiento de reinicio de un contenedor después de un reinicio del sistema?
¿Qué parámetro en Docker se utiliza para especificar el comportamiento de reinicio de un contenedor después de un reinicio del sistema?
La directiva ____________ en un Dockerfile especifica la imagen base sobre la cual se construye la nueva imagen.
La directiva ____________ en un Dockerfile especifica la imagen base sobre la cual se construye la nueva imagen.
¿Cuál es la función principal de la directiva COPY
en un Dockerfile?
¿Cuál es la función principal de la directiva COPY
en un Dockerfile?
El 'build context' en Docker se refiere a un archivo individual que contiene todas las instrucciones para construir una imagen.
El 'build context' en Docker se refiere a un archivo individual que contiene todas las instrucciones para construir una imagen.
¿Qué comando de Docker se utiliza para construir una imagen a partir de un Dockerfile?
¿Qué comando de Docker se utiliza para construir una imagen a partir de un Dockerfile?
Relacione cada directiva de Dockerfile con su descripción:
Relacione cada directiva de Dockerfile con su descripción:
¿Cuál es el propósito del parámetro -t
en el comando docker build
?
¿Cuál es el propósito del parámetro -t
en el comando docker build
?
El parámetro --rm
en el comando docker run
elimina permanentemente la imagen del contenedor una vez que este se detiene.
El parámetro --rm
en el comando docker run
elimina permanentemente la imagen del contenedor una vez que este se detiene.
¿Qué tipo de archivo se utiliza para listar las dependencias de una aplicación Python necesarias para construir una imagen de Docker?
¿Qué tipo de archivo se utiliza para listar las dependencias de una aplicación Python necesarias para construir una imagen de Docker?
En el contexto de Docker, el término build context
se refiere a el directorio ________.
En el contexto de Docker, el término build context
se refiere a el directorio ________.
¿Cuál de las siguientes opciones describe mejor la función del archivo Dockerfile
?
¿Cuál de las siguientes opciones describe mejor la función del archivo Dockerfile
?
Los datos volátiles dentro de un contenedor Docker deben guardarse directamente en la imagen para asegurar su persistencia.
Los datos volátiles dentro de un contenedor Docker deben guardarse directamente en la imagen para asegurar su persistencia.
Relacione las siguientes directivas de Dockerfile con su función:
Relacione las siguientes directivas de Dockerfile con su función:
¿Qué comando se utiliza para iniciar un contenedor Docker a partir de una imagen?
¿Qué comando se utiliza para iniciar un contenedor Docker a partir de una imagen?
Flashcards
Demonio de Docker
Demonio de Docker
Proceso principal de Docker que gestiona imágenes y contenedores.
Cliente de Docker
Cliente de Docker
Herramienta para interactuar con el sistema Docker.
Registro de Docker
Registro de Docker
Lugar donde se almacenan y descargan imágenes de Docker.
Imagen de Docker
Imagen de Docker
Signup and view all the flashcards
Contenedor de Docker
Contenedor de Docker
Signup and view all the flashcards
Servicios de Docker
Servicios de Docker
Signup and view all the flashcards
Docker CE
Docker CE
Signup and view all the flashcards
Sistemas compatibles con Docker CE
Sistemas compatibles con Docker CE
Signup and view all the flashcards
docker run hello-world
docker run hello-world
Signup and view all the flashcards
Contenedor
Contenedor
Signup and view all the flashcards
Registro público de Docker
Registro público de Docker
Signup and view all the flashcards
Image not found locally
Image not found locally
Signup and view all the flashcards
Pulling image
Pulling image
Signup and view all the flashcards
Ejecución de contenedor
Ejecución de contenedor
Signup and view all the flashcards
Añadir usuario al grupo Docker
Añadir usuario al grupo Docker
Signup and view all the flashcards
Cerrar y abrir sesión
Cerrar y abrir sesión
Signup and view all the flashcards
Comando docker pull
Comando docker pull
Signup and view all the flashcards
Docker Compose
Docker Compose
Signup and view all the flashcards
Imagen Docker
Imagen Docker
Signup and view all the flashcards
Registro de imágenes
Registro de imágenes
Signup and view all the flashcards
Imagen oficial
Imagen oficial
Signup and view all the flashcards
Nombre de la imagen y etiqueta
Nombre de la imagen y etiqueta
Signup and view all the flashcards
Volumen en Docker
Volumen en Docker
Signup and view all the flashcards
docker volume ls
docker volume ls
Signup and view all the flashcards
docker volume inspect
docker volume inspect
Signup and view all the flashcards
docker volume rm
docker volume rm
Signup and view all the flashcards
docker run -d mariadb
docker run -d mariadb
Signup and view all the flashcards
--mount source=...,target=...
--mount source=...,target=...
Signup and view all the flashcards
Parámetro -e en Docker
Parámetro -e en Docker
Signup and view all the flashcards
Opción -d en docker run
Opción -d en docker run
Signup and view all the flashcards
Volúmenes en Docker Compose
Volúmenes en Docker Compose
Signup and view all the flashcards
Parámetro Restart en Docker
Parámetro Restart en Docker
Signup and view all the flashcards
Dockerfile
Dockerfile
Signup and view all the flashcards
Build Context
Build Context
Signup and view all the flashcards
FROM (en Dockerfile)
FROM (en Dockerfile)
Signup and view all the flashcards
COPY (en Dockerfile)
COPY (en Dockerfile)
Signup and view all the flashcards
RUN (en Dockerfile)
RUN (en Dockerfile)
Signup and view all the flashcards
docker build
docker build
Signup and view all the flashcards
Parámetro -t
en docker build
Parámetro -t
en docker build
Signup and view all the flashcards
El punto (.
) en docker build
El punto (.
) en docker build
Signup and view all the flashcards
Parámetro --rm
en docker run
Parámetro --rm
en docker run
Signup and view all the flashcards
Parámetro -p
en docker run
Parámetro -p
en docker run
Signup and view all the flashcards
requirements.txt
requirements.txt
Signup and view all the flashcards
Study Notes
Introducción
- Docker automatiza el despliegue de aplicaciones dentro de contenedores de software.
- Proporciona una capa de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos.
- Utiliza características de aislamiento de recursos del kernel Linux, como cgroups y espacios de nombres (namespaces) para permitir que 'contenedores' independientes se ejecuten dentro de una sola instancia de Linux.
- Esto evita la sobrecarga de iniciar y mantener máquinas virtuales.
¿Quién puede usar Docker?
- Docker es útil para administradores de sistemas y desarrolladores.
- Ayuda a solucionar problemas de sistemas heterogéneos durante el desarrollo y despliegue de aplicaciones.
- Asegura la calidad del desarrollo al garantizar que todos usen las mismas versiones de aplicaciones y librerías.
- Permite crear entornos aislados con configuraciones idénticas.
¿Docker es Virtualización?
- En GNU/Linux, Docker no es virtualizado, no hay un hipervisor.
- Los procesos se ejecutan con el mismo kernel.
- Aísla los procesos del resto de los procesos del sistema y controla los recursos asignados.
- El contenedor no sabe que lo es, y es una distribución GNU/Linux independiente sin la penalización de rendimiento de los sistemas virtualizados.
- Permite una distribución construida a partir de una "receta" que garantiza que el sistema que se ejecuta siempre sea el mismo.
- Si se ejecutan contenedores GNU/Linux dentro de sistemas privativos, sí habrá virtualización.
Conceptos Básicos
- Demonio de Docker (docker daemon): Es el proceso principal, escucha peticiones a la API, y maneja imágenes, contenedores, redes, y volúmenes. Se comunica con otros demonios.
- Cliente de Docker (docker client): Es la principal herramienta para interactuar con el sistema Docker.
- Registro de Docker (docker registry): Es donde se almacenan las imágenes de Docker.
- Docker Hub es el principal registro público de Docker con imágenes listas para usar (MySQL, WordPress, etc.).
Objetos de Docker
- Imagen (image): Plantilla de solo lectura que contiene las instrucciones para crear un contenedor Docker.
- Contenedor (container): Instancia ejecutable de una imagen que puede ser creada, iniciada, detenida, movida o eliminada.
- Las instancias se pueden conectar a redes o sistemas de almacenamiento y se controla como de aislado está el contenedor del sistema anfitrión y del resto de contenedores.
- Servicios (services): Permiten escalar un contenedor a través de múltiples demonios de Docker que trabajan en conjunto como un enjambre (swarm).
Instalación
- Existen dos versiones de Docker: una libre (Community Edition) y otra no libre.
- Docker CE está disponible para GNU/Linux (CentOS, Debian, Fedora, Ubuntu) en varias arquitecturas (x86_64/amd64).
Disponibilidad
- La forma de instalar Docker varía según la distribución, por lo que se recomienda consultar la documentación oficial.
- Para Ubuntu, use:
https://docs.docker.com/install/linux/docker-ce/ubuntu/
- Para Debian, use:
https://docs.docker.com/install/linux/docker-ce/debian/
- Para CentOS, use:
https://docs.docker.com/install/linux/docker-ce/centos/
- Para Fedora, use:
https://docs.docker.com/install/linux/docker-ce/fedora/
Instalación
- Para verificar que Docker esté bien instalado, ejecute un contenedor de ejemplo.
- Comando:
sudo docker run hello-world
Configuración del Usuario
- Para usar Docker sin
sudo
, agregue su usuario al grupodocker
. - Comando:
sudo usermod -aG docker $USER
- Cierre y vuelva a abrir la sesión para que los cambios surtan efecto.
Imágenes
- Es necesario tener ciertas imágenes instaladas.
- Para instalar WordPress:
docker pull wordpress:latest
- Para instalar MariaDB:
docker pull mariadb:latest
- Asegúrese de haber configurado los permisos y cerrado la sesión antes de ejecutar estos comandos.
Herramientas
- Es necesario tener Docker Compose.
- Se puede instalar desde la página de instalación de Docker Compose.
- En Ubuntu o Debian, se instala más fácil con
apt
. - Comando:
sudo apt install docker-compose
Imágenes
- Las imágenes son la base de Docker y son plantillas de solo lectura que se crean incorporando los requisitos para cumplir un objetivo.
- Para crear un proyecto con PHP, se incorporará el intérprete de PHP.
- Para una página web, se agregará el servidor web (Apache, Nginx, etc.).
Buscar Imágenes
- Lo normal es partir o usar una imagen ya creada debido lo dificultoso que es crear una imagen desde cero.
- Se buscan en los registros, como el registro oficial (https://hub.docker.com).
- Se recomienda usar imágenes oficiales de WordPress, ya que están mantenidas y bien documentadas.
Gestión de Imágenes
- Las imágenes se identifican por nombre y versión.
- En la página de WordPress, hay una pestaña de Tags con las versiones disponibles.
- Para usar una versión específica, agregue dos puntos seguido del nombre de la versión. Si no se especifica, se descarga la etiquetada como
latest
. - Para descargar imágenes, use el comando:
docker pull
Descargar
- Ejemplo para descargar WordPress latest:
docker pull wordpress:latest
- Ejemplo para descargar WordPress php7.1:
docker pull wordpress:php7.1
Listado
- Para ver el listado de imágenes disponibles, use:
docker images
- Ejemplo de salida:
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest ca0fefec932b 7 days ago 409MB
wordpress php7.1 37664bd9863e 7 days ago 400MB
hello-world latest 4ab4c602aa5e 2 weeks ago 1.84kB
Borrado
- Para dejar de usar una imagen, use:
docker rmi
- Ejemplo:
docker rmi wordpress:php7.1
- No se puede eliminar una imagen si está en uso por algún contenedor.
Contenedores
- Los contenedores son instancias de las imágenes que se ejecutan de forma aislada.
Listado
- Para ver listado de contenedores, utilice
docker container ls
odocker ps
- Se visualizará un listado vacío si no hay contenedores activos
- Se puede usar el parámetro
--all
o-a
para mostrar todos los contenedores.
Iniciar un Contenedor
- Para iniciar un contenedor parado, use:
docker container start
- Ejecute:
docker ps
- Ejemplo:
docker container start peaceful_murdock
Detener un Contenedor
- Para detener un contenedor iniciado, use:
docker container stop
- Indique su id (ejemplo: 4bd76e08b07f ) o nombre.
Borrar un Contenedor
- Para borrar un contenedor detenido, use:
docker container rm
- Indique su id (ejemplo: 4bd76e08b07f ) o nombre.
- Al borrar un contenedor se elimina cualquier información que contenga.
Ejecutar Comandos Dentro de un Contenedor
- Se puede usar
docker run
para ejecutar programas que están dentro de un contenedor. - Ejemplo:
docker run --name ubuntu_bash --rm -i -t ubuntu bash
- Las primeras versiones de Docker eran más limitadas, así que salieron comandos como
docker start y docker stop
, relacionados con los contenedores.
Persistiendo Datos
- Por defecto, un contenedor está aislado y al eliminarlo se eliminan sus archivos.
- Para almacenar datos dentro de un contenedor sin perderlos se puede hacer:
- A través de volúmenes
- Montando un directorio de la máquina anfitrión
- Almacenándolo en la memoria del sistema (se perderían al reiniciar)
- Lo normal es usar volúmenes.
Crear Volumen
- Para crear un volumen donde guardar la información para blog WordPress:
- Comando:
docker volume create
- Ejemplo:
docker volume create wordpress-db
Listar Volúmenes
- Para visualizar todos los volúmenes disponibles:
- Comando:
docker volume ls
- Ejemplo de resultado:
DRIVER VOLUME NAME
local wordpress-db
Visualizar Volúmenes
- Los volúmenes se crean en un directorio del sistema, no es recomendable acceder a él mientras haya contenedor usándolo.
- Para ver metadatos volumen usa.
- Comando:
docker volume inspect
Borrar Volúmenes
- Como todos los objetos de Docker, se pueden borrar volúmenes
- Solamente se realiza si el volumen no está en uso
- Usar mucha precaución porque se perderían todos los datos que contenga
- Comando:
docker volume rm
Levantar WordPress con Docker
- Para crear un blog con WordPress requiere de una BBDD
- Se comenzará por crear la base de datos para luego crear el contenedor del blog.
Crear un Contenedor con MariaDB
- WordPress soporta los motores relaciones MySQL y MariaDB
- Para crear la BBDD se utiliza el volumen docker run -d --name wordpress-db \
- -mount source=wordpress-db,target=/var/lib/mysql \
- e MYSQL_ROOT_PASSWORD=secret \
- e MYSQL_DATABASE=wordpress \
- e MYSQL_USER=manager \
- e MYSQL_PASSWORD=secret mariadb:10.3.9
- La imagen de MariaDB se descargue si no lo está y se inicie el contenedor.
- No se usa el parámetro -p para publicar puertos
- Agregar parámetro -d para que se ejecute como un proceso en segundo plano, para no pararlo por accidente con Control+C.
- Variables con -e que configuran la BBDD, un usuario y configuración de contraseña
- Se recomienda mirar en el registro de Docker la imagen oficial de MariaDB
- El parámetro --mount enlaza el volumen al directorio /var/lib/mysql del contenedor, donde se guardan los datos de MariaDB.
Creando Nuestro Blog
- Se conectará WordPress con la BBDD
- Es necesario poder editar los ficheros de las plantillas, por lo que se necesita montar el directorio del contenedor con la cuenta del usuario de la máquina anfitrión
- Para crear el espacio de trabajo se usa el siguiente comando:
mkdir -p ~/Sites/wordpress/target && cd ~/Sites/wordpress
- Para arrancar el contenedor se usa el siguiente comando:
docker run -d --name wordpress \
- -link wordpress-db:mysql \
- -mount type=bind,source="$(pwd)"/target,target=/var/www/html \
- e WORDPRESS_DB_USER=manager \
- e WORDPRESS_DB_PASSWORD=secret \
- p 8080:80 \
wordpress:4.9.8
- Al terminar, se accede al http://localhost:8080/ y ahora se podrá acabar el proceso de instalación del WordPress
- Listar directorio target, comprueba que están todos los archivos de la instalación accesibles fuera directorio
Levantar un WordPress con Docker Compose
- El cliente de Docker es problemático para crear contenedores, así como vinculados entre ellos.
- Para automatizar la creación, inicio y parada de un grupo de contenedores, Docker proporciona una herramienta Docker Compose.
- Para detener y borrar lo creado se usa:
docker container stop wordpress wordpress-db
docker container rm wordpress wordpress-db
docker volume rm wordpress-db
Docker Compose
- Compose es una herramienta para definir y ejecutar aplicaciones multi-contenedor.
- Se crea e inicia todos los servicios con un comando
- Los casos de usos más habituales para docker-compose:
- Entornos de desarrollo
- Entornos de test automáticos (integración continua)
- Despliegue en host individuales (no clusters)
- Compose tiene comandos para manejar ciclo de vida de aplicación
- Iniciar, detener y rehacer servicios.
- Ver estado de servicios.
- Visualizar los logs.
- Ejecutar comando en un servicio.
Creación de Contenedores Automatizada
- Se crea fichero llamado docker-compose.yaml con el siguiente contenido:
version: '3'
services:
db:
image: mariadb:10.3.9
volumes:
data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD=secret
MYSQL_DATABASE=wordpress
MYSQL_USER=manager
MYSQL_PASSWORD=secret
web:
image: wordpress:4.9.8
depends_on:
db
volumes:
./target:/var/www/html
environment:
WORDPRESS_DB_USER=manager
WORDPRESS_DB_PASSWORD=secret
WORDPRESS_DB_HOST=db
ports:
8080:80
- Los ficheros de Compose se dividen en tres secciones: services, volumes y networks e indican un número de versión.
- Realiza prácticamente lo mismo que el cliente de docker de forma automática.
- Con este fichero podemos hacer lo mismo que en el capítulo anterior pero con la ventaja de describir todos los requisitos en un solo archivo
Iniciar Servicios
- Se usa el siguiente aplicación: `docker-compose up -d`
- Al arrancar la aplicación, Compose informa de los servicios levantando la
- El parámetro -d es similar al docker run, permite levantar servicios en segundo plano.
docker-compose up -d
Creating network "wordpress_default" with the default driver
Creating volume "wordpress_data" with local driver
Creating wordpress_db_1 ... done
Creating wordpress_web_1 ... done
Detener Servicios
- Se detiene con:
docker-compose stop
Borrar Servicios
- Se borran con:
docker-compose down
- Este comando borra los contenedores pero no los volúmenes
- Para borrar con volúmenes:
docker-compose down -v
Estructura de la Configuración
- Estructura de la parte de configuración
version: '3'
- Compose con frecuencia es actualizado por lo que el archivo va adquiriendo funcionales.
- La versión 3 es la última actualización, mirar la página de referencia
- Datos volátiles de las aplicaciones en volúmenes, en este caso, se utiliza data.
Crear Imágenes Propias
- Se usan imágenes de terceros
- Docker permite crear imágenes propias, aunque se puede partir desde cero
- Es fácil crear la imagen en base a una ya existente
- Se puede partir de una imagen base de un lenguaje de programación o de una distinta distribución
- Se debe guardar dentro un build context, un directorio
- El directorio contiene los archivos para construir la imagen
Mi Primer Dockerfile
- Los archivos Dockerfile contienen las instrucciones crean las imágenes
- Se deben guardar en un build content
Trucos
Portainer
- Es un gestor de contenedores con interface web
- Hay que guardar el docker-compose.yaml en ~/Sites/portainer
- El fichero queda de la siguiente forma:
version: '2'
services:
portainer:
image: portainer/portainer
command: -H unix:///var/run/docker.sock
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
ports:
- 127.0.0.1:9000:9000
volumes:
portainer_data:
- Para ejecutar el contenedor:
docker-compose up -d
Limpieza
- Para borrar objetos en desuso:
docker system prune
- Para borrar volúmenes no asociados con un contenedor:
docker volume rm $(docker volume ls -q -f "dangling=true")
- Para eliminar contenedores que han finalizado:
docker rm $(docker ps -q -f "status=exited")
- Para borrar imágenes sin etiquetar:
docker image rmi $(docker images -q -f "dangling=true")
Copias de seguridad
- Crear una copia de seguridad se realiza mediante:
docker run --rm -v /tmp:/backup \
- -volumes-from <container-name> \
busybox tar -cvf /backup/backup.tar <path-to-data>
- La restauración se realiza:
docker run --rm -v /tmp:/backup \
- -volumes-from <container-name> \
busybox tar -xvf /backup/backup.tar <path-to-data>
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Pon a prueba tus conocimientos sobre Docker, incluyendo contenedores, imágenes y el demonio de Docker. Aprende sobre Docker CE, Docker Compose y comandos esenciales para administrar contenedores. Este cuestionario cubre desde los conceptos básicos hasta la gestión de usuarios y la instalación de Docker en diferentes sistemas operativos.