Comandos para imágenes
Aquí tienes un listado de los principales comandos para manejar imágenes Docker, explicados con detalle y acompañados de ejemplos prácticos:
1. docker pull
- Descripción: Descarga una imagen desde un repositorio Docker (generalmente Docker Hub) a tu máquina local.
- Sintaxis:
docker pull <nombre_imagen>:<tag>
- Ejemplo:
docker pull nginx:latest
Esto descarga la última versión de la imagen de Nginx desde Docker Hub.
2. docker build
- Descripción: Construye una imagen Docker desde un archivo
Dockerfile
. - Sintaxis:
docker build -t <nombre_imagen>:<tag> <directorio>
- Ejemplo:
docker build -t mi_nginx:1.0 .
Esto construye una imagen llamada
mi_nginx
con la etiqueta1.0
utilizando elDockerfile
ubicado en el directorio actual (.
).
3. docker images
- Descripción: Lista todas las imágenes Docker almacenadas en tu máquina local.
- Sintaxis:
docker images
- Ejemplo:
docker images
Este comando muestra una tabla con las imágenes disponibles, incluyendo el nombre, la etiqueta, el ID de la imagen, la fecha de creación y el tamaño.
4. docker rmi
- Descripción: Elimina una o más imágenes de tu máquina local.
- Sintaxis:
docker rmi <nombre_imagen>:<tag>
- Ejemplo:
docker rmi mi_nginx:1.0
Esto elimina la imagen
mi_nginx
con la etiqueta1.0
de tu máquina local. - Nota: Si la imagen está siendo usada por un contenedor en ejecución, deberás detener y eliminar el contenedor antes de eliminar la imagen, o usar el flag
-f
para forzar la eliminación.docker rmi -f mi_nginx:1.0
5. docker tag
- Descripción: Crea una nueva etiqueta para una imagen. Esto es útil cuando deseas subir una imagen a un repositorio con un nombre o versión diferente.
- Sintaxis:
docker tag <imagen_origen>:<tag_origen> <imagen_destino>:<tag_destino>
- Ejemplo:
docker tag mi_nginx:1.0 usuario_dockerhub/nginx_test:latest
Esto crea una nueva etiqueta
nginx_test:latest
basada en la imagenmi_nginx:1.0
.
6. docker push
- Descripción: Sube una imagen a un repositorio Docker, como Docker Hub.
- Sintaxis:
docker push <nombre_imagen>:<tag>
- Ejemplo:
docker push usuario_dockerhub/nginx_test:latest
Esto sube la imagen
nginx_test
con la etiquetalatest
al repositorio de Docker Hub bajo el usuariousuario_dockerhub
.
7. docker history
- Descripción: Muestra el historial de construcción de una imagen, detallando cada capa que fue creada durante el proceso de construcción.
- Sintaxis:
docker history <nombre_imagen>:<tag>
- Ejemplo:
docker history nginx:latest
Esto muestra el historial de la imagen
nginx:latest
, incluyendo comandos ejecutados, tamaños de las capas, y más.
8. docker inspect
- Descripción: Muestra información detallada sobre una imagen o contenedor, como las configuraciones, las capas, y otros metadatos.
- Sintaxis:
docker inspect <nombre_imagen>:<tag>
- Ejemplo:
docker inspect nginx:latest
Esto muestra un JSON con detalles sobre la imagen
nginx:latest
.
9. docker save
- Descripción: Guarda una o más imágenes en un archivo tar. Esto es útil para transferir imágenes entre sistemas que no tienen acceso a un registro Docker.
- Sintaxis:
docker save -o <archivo_tar> <nombre_imagen>:<tag>
- Ejemplo:
docker save -o mi_nginx.tar mi_nginx:1.0
Esto guarda la imagen
mi_nginx:1.0
en un archivo llamadomi_nginx.tar
.
10. docker load
- **Descripción**: Carga una o más imágenes desde un archivo tar creado con `docker save`.
- **Sintaxis**:
```bash
docker load -i <archivo_tar>
```
- **Ejemplo**:
```bash
docker load -i mi_nginx.tar
```
Esto carga la imagen desde el archivo `mi_nginx.tar` a tu máquina local.
11. docker commit
- **Descripción**: Crea una nueva imagen a partir de un contenedor en ejecución. Esto es útil si has hecho cambios en un contenedor y quieres guardar esos cambios en una nueva imagen.
- **Sintaxis**:
```bash
docker commit <id_contenedor> <nombre_nueva_imagen>:<tag>
```
- **Ejemplo**:
```bash
docker commit 12345abcde mi_imagen_personalizada:1.0
```
Esto crea una nueva imagen llamada `mi_imagen_personalizada:1.0` basada en el contenedor con ID `12345abcde`.
12. docker rename
- **Descripción**: Cambia el nombre de una imagen o contenedor.
- **Sintaxis**:
```bash
docker rename <nombre_actual> <nuevo_nombre>
```
- **Ejemplo**:
```bash
docker rename mi_nginx mi_nginx_viejo
```
Esto cambia el nombre de la imagen `mi_nginx` a `mi_nginx_viejo`.
13. docker prune
- **Descripción**: Elimina imágenes, contenedores, volúmenes y redes que no están en uso. Se puede usar con opciones específicas para eliminar solo un tipo de recurso.
- **Sintaxis**:
```bash
docker image prune
```
- **Ejemplo**:
```bash
docker image prune -a
```
Esto elimina todas las imágenes que no están asociadas con ningún contenedor, incluyendo imágenes intermedias y aquellas sin etiquetas (`dangling`).
14. docker import
- **Descripción**: Importa una imagen desde un archivo de sistema de archivos, creando una nueva imagen Docker.
- **Sintaxis**:
```bash
docker import <archivo_tar> <nombre_imagen>:<tag>
```
- **Ejemplo**:
```bash
docker import mi_sistema.tar mi_imagen_sistema:1.0
```
Esto crea una imagen llamada `mi_imagen_sistema:1.0` a partir del archivo `mi_sistema.tar`.
Estos comandos te permiten gestionar imágenes Docker de manera efectiva, ya sea para construir, etiquetar, eliminar, inspeccionar o transferir imágenes entre sistemas. Con estos comandos, puedes manejar todo el ciclo de vida de una imagen Docker en tu entorno de desarrollo o producción.