WORK IN PROGRESS
Índice
Operaciones con imágenes
Listar imágenes locales
Este comando proporcionará, entre otros datos, el ID de las imágenes (IMAGE ID
) descargadas en el entorno local que se utilizará para referenciar dichas imágenes en otras operativas.
docker image ls
Crear una imagen a partir de un Dockerfile
sudo docker image build -t <etiqueta imagen> --build-arg <argumento Dockerfile> <ruta a Dockerfile>
Dónde Argumento Dockerfile
: Corresponde a un elemento de tipo ARG
del Dockerfile. La pareja --build-arg <argumento>
puede especificarse tantas veces cómo parámetros haya.
Ejemplo:
sudo docker image build -t "custom/image:1.0.0" --build-arg jar_file="dist/main.jar" .
Inspeccionar la definición de una imagen
Este comando permitirá inspeccionar la definición de una imagen contenida en el registro local, esto es, su Dockerfile
.
docker image inspect <IMAGE ID>
Dónde el IMAGE ID
es el identificador retornado por el comando para el Listado de imágenes locales
Operaciones con contenedores
Listar contenedores
# Listado de los contenedores en funcionamiento
sudo docker container ls
sudo docker ps
# Listado de todos los contenedores independientemente de su estado
sudo docker container ls --all
Proporciona información de los contenedores creados en el entorno local que incluye:
- CONTAINER_ID: ID del contenedor. Puede utilizarse para referenciar el contenedor en otros comandos
- IMAGE: Referencia a la imagen sobre la que se ha creado el contenedor
- COMMAND: Hint del comando que ejecuta el contenedor
- CREATED: Fecha relativa a la creación del contenedor
- STATUS: Estado actual del contenedor. Indica si se encuantra en funcionamiento, parado, con errores, etc.
- PORTS: Puertos expuestos por el contenedor y su correspondencia con el puerto del host
- NAMES: Nombre asignado al contenedor. Puede utilizarse en lugar del
CONTAINER_ID
para referenciar el contenedor en otros comandos
Crear un contenedor
# En 1 paso
sudo docker run -v <mapeo volumes> -p <mapeo puerto> --name <nombre container> <nombre imagen>
# En 2 pasos
sudo docker container create -v <mapeo volumes> -p <mapeo puerto> --name <nombre container> <nombre imagen>
sudo docker container start <container_name or container_id>
Dónde el nombre
o id
del contenedor son valores retornados por el comando para el Listado de contenedores
Ejemplo:
# En 1 paso
sudo docker run -v /home/vagrant/prometheus/conf:/etc/prometheus -p 9090:9090 prom/prometheus:v2.17.2
# En 2 pasos
sudo docker container create -v /home/vagrant/prometheus/conf:/etc/prometheus -p 9090:9090 --name prometheus prom/prometheus:v2.17.2
sudo docker container start prometheus
Borrar contenedor
sudo docker rm <nombre o id contenedor>
Dónde el nombre
o id
del contenedor son valores retornados por el comando para el Listado de contenedores
Modificar la configuración de un contenedor
Modificar política de reinicio
sudo docker container update --restart <policy> <nombre o id contenedor>
Dónde:
nombre
oid
del contenedor son valores retornados por el comando para el Listado de contenedorespolicy
: Indica la política de reinicio y puede tomar los valoresno
: (Default) No reicniar el contenedor automáticamenteon-failure
: Reiniciar el contenedor si anteriormente finalizado con error (Devuelve un código != 0)always
: Reiniciar el contendor siempre. Si el contenedor se ha parado manualmente, se reiniciará sólo cuando el daemon de Docker se reinicie (Reinicio del sistema o reinicio manual del daemon)unless-stopped
: Similar aalways
excepto que no se reinicia cuando el contenedor ha sido parado manualmente
Listar Stats de un contenedores en funcionamiento
Proporciona información sobre el consumo de recursos de los contenedores en funcionamiento
sudo docker stats
Parar un contenedor en funcionamiento
sudo docker stop <nombre o id contenedor>
Dónde el nombre
o id
del contenedor son valores retornados por el comando para el Listado de contenedores
Ejecutar un comando en un contenedor
NOTA: El comando debe estar disponible dentro del contenedor
sudo docker exec -t <nombre o id contenedor> <comando>
Dónde el nombre
o id
del contenedor son valores retornados por el comando para el Listado de contenedores
Por ejemplo, para listar el contenido de un fichero ubicado dentro de contenedor:
sudo docker exec -t grafana_loki_1 cat /etc/loki/local-config.yaml
Borrado total de contenedores e imágenes
Esta instrucción permite realizar realizar una limpieza general de la sesión por si se desean descargar nuevas imágenes o eliminar posibles errores que se estén produciendo localmente.
Para ejecutar la limpieza general en una ventada de terminal se debe escribir la instrucción:
sudo docker system prune -af
una vez finalizada su ejecución si no ha habido ningún problema habrá eliminado todo imagen o contenedor existente. Se puede verificar que no existe ninguno mediante el listado de imágenes o la consulta de los contenedores. Es importante indicar que esta instrucción se ejecutará siempre siendo totalmente indiferente si los contenedores se encuentran parados o arrancados.
Ejecutar shell en un contenedor
sudo docker exec -it <nombre o id contenedor> /bin/sh
Dónde el nombre
o id
del contenedor son valores retornados por el comando para el Listado de contenedores