0% encontró este documento útil (0 votos)
5 vistas11 páginas

Guía Completa sobre Docker y Comandos

El documento proporciona una introducción a Docker, explicando conceptos clave como contenedores e imágenes de contenedor, así como comandos esenciales para la gestión de estos elementos. También se abordan temas de almacenamiento, redes, Dockerfile y Docker Compose, destacando la importancia de los volúmenes y las montajes de enlace. Finalmente, se menciona cómo Docker Compose permite definir y ejecutar aplicaciones multi-contenedor mediante un archivo de configuración en formato YAML.

Cargado por

santiylucas10
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas11 páginas

Guía Completa sobre Docker y Comandos

El documento proporciona una introducción a Docker, explicando conceptos clave como contenedores e imágenes de contenedor, así como comandos esenciales para la gestión de estos elementos. También se abordan temas de almacenamiento, redes, Dockerfile y Docker Compose, destacando la importancia de los volúmenes y las montajes de enlace. Finalmente, se menciona cómo Docker Compose permite definir y ejecutar aplicaciones multi-contenedor mediante un archivo de configuración en formato YAML.

Cargado por

santiylucas10
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Docker

Santiago González
Mini intro

Conceptos importantes:

● Container: es un proceso aislado que corre


separado de todos los otros procesos de la
máquina host. Los contenedores pueden estar
en estado “running” o “exited”
● Container Image: al correr un contenedor se usa
un filesystem aislado, este filesystem provee la
imagen de docker. La imagen de un contenedor
debe contener todo lo necesario para que la
aplicación pueda correr correctamente
(dependencias, configuraciones, scripts,
binarios, etc.)

[Link]
Comandos principales

Gestión de contenedores e imágenes:

- docker ps: muestra todos los contenedores que están corriendo


- docker ps -a: muestra todos los contenedores (tanto running como exited)
- docker rm <container-id>: elimina uno o más container
- docker image ls / docker images: muestra todas las imágenes ya descargadas en el equipo
- docker rmi <image-id>: elimina una o mas imagenes
- docker pull <image-name>: descarga la imagen desde docker hub
- docker <command> --help: para ver información de ese comando
- docker start <container-id>: levanta un contenedor ya existente
- docker stop <container-id>: para uno o mas contenedores

[Link]
Comandos principales

docker run: comando que se utiliza para crear un contenedor nuevo en base a una imagen. En
caso que la imagen no esté disponible localmente hace el pull automáticamente. Por ejemplo:

docker run hello-world

Flags más usadas con docker run:

● -d: Run container in background and print container ID


● -p: se usa para especificar los puertos
● -e: set environment variables
● --name: establece el nombre del contenedor
● --link: agrega link a otro contenedor
● -t: Allocate a pseudo-TTY
● --mount / -v: asocian/dan persistencia a un contenedor

[Link]
Storage

Docker tiene dos opciones para que los contenedores almacenen archivos en la máquina host, de modo
que los archivos persisten incluso después de que el contenedor se detenga: volúmenes y montajes de
enlace.

● Bind mount
○ El archivo o directorio
está referenciado por su
path completo en el host
● Volume
○ aislados del host
○ pueden ser accedidos
por múltiples
contenedores
● tmpfs
○ no persistente
Volumes

Volumes are stored in a part of the host filesystem which is managed by Docker

Un volumen determinado se puede montar en varios contenedores


simultáneamente. Cuando ningún contenedor en ejecución está utilizando un
volumen, el volumen sigue disponible para Docker y no se elimina
automáticamente.

- Fáciles de hacer copias de seguridad o migrar que los montajes de enlace.


- Puede administrar volúmenes utilizando los comandos de Docker CLI o la
API de Docker.
- Los volúmenes se pueden compartir de forma más segura entre varios
contenedores.
- Los controladores de volumen le permiten almacenar volúmenes en hosts
remotos o proveedores en la nube, para cifrar el contenido de los volúmenes
o para agregar otras funciones.
- Los volúmenes en Docker Desktop tienen un rendimiento mucho más alto
que los montajes de enlace de los hosts de Mac y Windows.
[Link]
Bind mount

Cuando se utiliza un montaje de enlace, un archivo o


directorio en la máquina host se monta en un contenedor.

El archivo o directorio está referenciado por su ruta absoluta


en la máquina host. Por el contrario, cuando se utiliza un
volumen, se crea un nuevo directorio dentro del directorio
de almacenamiento de Docker en la máquina host, y Docker
gestiona el contenido de ese directorio.

Los montajes de enlace son muy eficientes, pero dependen


de que el sistema de archivos de la máquina host tenga una
estructura de directorios específica disponible.
Networking

● Puertos:

Por default al crear un contenedor, NO se exponen puertos. Para poder exponer puertos se utiliza -p

● IP address and hostname


Por default el contenedor obtiene una dirección IP para cada Docker network a la que se conecta. Un contenedor
recibe una dirección IP de la subred IP de la red. El demonio Docker realiza subredes dinámicas y asignación de
direcciones IP para contenedores. Cada red también tiene una máscara de subred y una puerta de enlace
predeterminadas
● DNS services
Hereda la configuración de DNS del host
Dockerfile

Es un archivo que contiene todos los comandos que un usuario puede llamar en la CLI para
armar una imagen de docker. Comandos principales:

- FROM <base-image>: todos los dockerfile deben empezar con esta instrucción, se
necesita que tengan una imagen de base
- RUN <comandos>: ejecuta comandos en una nueva layer
- WORKDIR <path>: establece el directorio donde se trabaja
- CP <origin> <destination>: copia archivos locales al contenedor al momento del build
- EXPOSE <puerto>: expone el puerto indicado
- ENTRYPOINT
- CMD

[Link]
Docker compose

● Qué es?

Es una herramienta para definir y ejecutar aplicaciones Docker multi-contenedor. En compose


se utiliza un archivo en formato yaml/yml. Compose funciona en todos los entornos: prod,
staging, dev y test.

● Key features

El uso de un docker compose, consta de 3 etapas:

1) Configurar el entorno de la app en el Dockerfile


2) Definir todos los servicios que requiera requiera la app
3) Correr el docker compose (docker compose up)
Docker compose - Ejemplo
[Link] Dockerfile

Directorio con app

[Link]

También podría gustarte