Show Menu
Cheatography

Docker Cheat Sheet (DRAFT) by

CheatSheet "Contenedores (Docker)" Unidad 2

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Introd­ucción. Conceptos básicos

Virtua­liz­ación vs. Conten­edores
La virtua­liz­ación emula hardware completo; los conten­edores comparten el sistema anfitrión, aislando aplica­ciones.
Docker
Sistema de conten­edores en Linux que facilita el despliegue y ejecución de aplica­ciones en entornos contro­lados y consis­tentes.
Cliente Docker
Interfaz que se comunica con el servidor.
Servidor Docker (Host)
Gestiona conten­edores e imágenes.
Ventajas de Docker
Ahorra espacio y recursos. Compatible con entornos de desarr­ollo, pruebas y produc­ción. Velocidad de ejecución cercana a la nativa.
Limita­ciones
Menor rendim­iento que en hardware dedicado. Persis­tencia de datos más compleja. Prefer­encia por línea de comandos (puede ser tedioso crear entornos gráficos).
Contenedor
Un contenedor es un entorno aislado que ejecuta aplica­ciones con sus depend­encias, compar­tiendo el kernel del sistema operativo anfitrión. Es más ligero y rápido que una máquina virtual.
Imagen
Plantilla inmutable que define qué contiene y cómo funciona un conten­edor. Las imágenes incluyen el sistema de archivos y las aplica­ciones necesarias y pueden ser almace­nadas en reposi­torios como Docker Hub.
Volumen
Almace­nam­iento persis­tente que permite guardar datos de forma indepe­ndiente al ciclo de vida del conten­edor, facili­tando el manejo de datos duraderos entre diferentes instan­cias.

Princi­pales acciones

Crear un grupo docker
sudo groupadd docker
Añadir tu usuario a un grupo docker
sudo usermod -aG docker $USER
Crear contenedor apartir de una imagen, modo intera­ctivo. Para poder intera­ctuar con el conten­endor creado, asignar terminal intera­ctivo
docker run -it nombre­Imagen
Crea un contenedor con la imagen "­ubu­ntu­"
docker run -it --name­=no­mbr­eRandom ubuntu /bin/bash
Mostrar inform­acion conten­edores en ejecución
docker ps
Muestra inform­ación de todos los conten­edores
docker ps -a
Arranca un conten­endor concreto
docker start nombre­Con­tenedor
Ejecutar comandos dentro de un contenedor que esta en ejecución
docker exec
Crear y inicia­lizar un conten­endor
docker run
Detener conten­edores activos con nombre­Con­tenedor
docker stop nombre­Con­tenedor
Conectarse a la consola de un contenedor en ejecución
docker attach IDCONT­AINER
Muestra inform­ación del proceso de ejecución del contenedor
docker logs IDCONT­AINER
Copiar fichero /tmp/n­omb­reF­ichero del contenedor al directorio actual del anfitrión
docker cp IDCONT­AIN­ER:­/tm­pt/­nom­bre­Fichero ./
Copiar un fichero del directorio actual anfitrión al a la carpeta /tmp del contenedor
docker cp ./nomb­reF­ichero IDCONT­AIN­ER:/tmp
 

Volúmenes

Crear un volúmen
docker volume create nombre­Volumen
Listar volúmenes
docker volume ls
Listar volúmenes activos
docker volume ls -a
Visualizar volúmenes
docker volume inspect nombre­Volumen
Borrar volúmen
docker volume rm nombre­Volumen
Crear contenedor y asignar volumen
docker run -d -it --nomb­reC­ont­enedor -v nombre­Volumen
Examinar contenido volumen "­met­ada­tos­"
docker volum inspect nombre­Volumen

Gestión de redes

Creamos una red
docker network create nombre-red
Listamos las redes existentes
docker network ls
Borramos una red
docker network rm nombre-red
Conectar el contenedor creado "­ubu­ntu­" a una red
docker run -it --network nombre-red ubuntu /bin/bash
Conectar un contenedor a una red
docker network connect IDRED IDCONT­ENEDOR
Descon­ectar un contenedor de una red
docker network disconnect IDRED IDCONT­ENEDOR

Imágenes

Inform­ación imagenes dispon­ibles
docker images
Buscar una imagen en concreto
docker search nombre­Imagen
Descargar localmente una imagen existente en remoto
docker pull nombre­Imagen
Eliminar localmente una imagen
docker rmi nombre­Imagen
Borrar un contenedor
docker rm IDCONT­ENEDOR
Mostrar historial de la creación de una imagen
docker history nombre­Imagen
Borra toda imagen local que no esté siendo usada por un contenedor
docker rmi $(docker images -q)
Parar todos los conten­edores
docker stop $(docker ps -a -q)
Paramos todos los conten­edores parados
docker rm $docker ps -a -q)
Borrar imagenes y conten­edores parados
docker system prune -a
Commit de un contenedor a una imagen local
docker commit -m “comen­tario” IDCONT­ENEDOR usuari­o/i­mag­en:­version
Guarda una copia de seguridad de una imagen en fichero “.tar”.
docker save -o copiaS­egu­rid­ad.tar imagenA
Restaura una copia de seguridad de una imagen en fichero “.tar”.
docker load -i copiaS­egu­rid­ad.tar

Docker Hub

Login a Docker Hub en remoto
docker login
Subir al reposi­torio una imagen
docker push usuari­o/i­mag­en:­version
 

Docker Compose

Inicia el sistema definido en “docke­r-c­omp­ose.yml” en segundo plano. Arranca la aplicación con Compose
docker­-co­mpose up -d
Detiene servicios
docker­-co­mpose stop
Detiene y elimina los conten­edores según la config­uración de “docke­r-c­omp­ose.yml”
docker­-co­mpose down
Detiene y elimina volumenes y conten­edores
docker­-co­mpose down -v
Muestra inform­ación de los servicios que se define en docker­-co­mpo­se.y­am­l.M­uestra inform­ación de los conten­edores según la config­uración de “docke­r-c­omp­ose.yml”
docker­-co­mpose ps
Constr­uye­/de­scarga las imágenes de conten­edores según la config­uración de “docke­r-c­omp­ose.yml”
docker­-co­mpose build/pull
Parámetro docker -link
Parámetro compose depends_on
Parámetro docker -mount
Parámetro compose volumes
Parámetro docker -e
Parámetro compose enviro­nment
Parámetro docker -p
Parámetro compose ports

Dockerfile

Crear imagen a partir de Dockerfile
docker build -t nombre­Imagen
Imagen base de la que partimos
FROM
Comandos que lanzaremos sobre la imagen base, para crear una nueva
RUN
Comando asociado al lanzar un contenedor con la nueva imagen
CMD
Para indicar los puertos por defecto expuestos que tendra el contenedor
EXPOSE
Descom­primir el contendio de un archivo en el directorio destino
ADD
Copiar ficheros de la máquina anfitrión al nuevo contenedor
COPY
Cambiar comandos que se lanzan por defecto al ejecutar un contenedor
ENTRYPOINT
Cambiar el usuario por defecto (root) a la hora de lanzar comandos al crear la imagen
USER
Cambiar el directorio de la imagen donde se ejecutaran los comandos
WORKDIR
Definir variables de entorno en la imagen
ENV
Enviar párametros al propio Dockerfile
ARG
Establecer volúmenes por defecto en la imagen
VOLUME
Establecer metadatos dentro de la imagen mediante etiquetas
LABEL
Definir como se comprobará si ese contenedor está funcio­nando correc­tamente
HEALTH­CHECK