Docker
Gestionando imagenes
Buscar..
Sintaxis
- Imágenes de la ventana acoplable [OPCIONES] [REPOSITORIO [: TAG]]
- Docker inspeccionar [OPCIONES] CONTENEDOR | IMAGEN [CONTENEDOR | IMAGEN ...]
- docker pull [OPCIONES] NOMBRE [: TAG | @DIGEST]
- docker rmi [OPCIONES] IMAGEN [IMAGEN ...]
- etiqueta acoplable [OPCIONES] IMAGEN [: ETIQUETA] [REGISTRYHOST /] [NOMBRE DE USUARIO /] NOMBRE [: ETIQUETA]
Recuperando una imagen de Docker Hub
Normalmente, las imágenes se extraen automáticamente de Docker Hub . Docker intentará extraer cualquier imagen de Docker Hub que aún no exista en el host de Docker. Por ejemplo, el uso de docker run ubuntu
cuando la imagen de ubuntu
no está en el host de Docker hará que Docker inicie una extracción de la última imagen de ubuntu
. Es posible extraer una imagen por separado utilizando la función docker pull
para recuperar o actualizar manualmente una imagen desde Docker Hub.
docker pull ubuntu
docker pull ubuntu:14.04
Existen opciones adicionales para extraer de un registro de imagen diferente o extraer una versión específica de una imagen. La indicación de un registro alternativo se realiza utilizando el nombre completo de la imagen y la versión opcional. Por ejemplo, el siguiente comando intentará extraer la imagen de ubuntu:14.04
del registry.example.com
registry.example.com:
docker pull registry.example.com/username/ubuntu:14.04
Listado de imágenes descargadas localmente
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 693bce725149 6 days ago 967 B
postgres 9.5 0f3af79d8673 10 weeks ago 265.7 MB
postgres latest 0f3af79d8673 10 weeks ago 265.7 MB
Imágenes de referencia
Los comandos de Docker que toman el nombre de una imagen aceptan cuatro formas diferentes:
Tipo | Ejemplo |
---|---|
ID corta | 693bce725149 |
Nombre | hello-world (predeterminado :latest etiqueta) |
Nombre + etiqueta | hello-world:latest |
Digerir | hello-world@sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 |
Nota: Solo puede hacer referencia a una imagen por su resumen si la imagen se extrajo originalmente con ese resumen. Para ver el resumen de una imagen (si hay una disponible), ejecute las docker images --digests
.
Eliminando imagenes
El comando docker rmi
se utiliza para eliminar imágenes:
docker rmi <image name>
El nombre completo de la imagen debe usarse para eliminar una imagen. A menos que la imagen se haya etiquetado para eliminar el nombre de registro, debe especificarse. Por ejemplo:
docker rmi registry.example.com/username/myAppImage:1.3.5
También es posible eliminar imágenes por su ID en su lugar:
docker rmi 693bce725149
Como conveniencia, es posible eliminar imágenes por su ID de imagen especificando solo los primeros caracteres de la ID de imagen, siempre que la subcadena especificada sea inequívoca:
docker rmi 693
Nota: las imágenes se pueden eliminar incluso si hay contenedores existentes que usan esa imagen; docker rmi simplemente "desata" la imagen.
Si ningún contenedor está utilizando una imagen, se recolecta en la basura. Si un contenedor usa una imagen, la imagen se recolectará en la basura una vez que se eliminen todos los contenedores que la usan. Por ejemplo:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b hello-world "/hello" Less than a second ago Exited (0) 2 seconds ago small_elion
$ docker rmi hello-world
Untagged: hello-world:latest
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b 693bce725149 "/hello" Less than a second ago Exited (0) 12 seconds ago small_elion
Eliminar todas las imágenes sin contenedores iniciados
Para eliminar todas las imágenes locales que no tienen contenedores iniciados, puede proporcionar una lista de las imágenes como un parámetro:
docker rmi $(docker images -qa)
Eliminar todas las imágenes
Si desea eliminar imágenes, independientemente de si tienen o no un contenedor iniciado, use el indicador de fuerza ( -f
):
docker rmi -f $(docker images -qa)
Eliminar imágenes colgando
Si una imagen no está etiquetada y no está siendo utilizada por ningún contenedor, está "colgando" y puede eliminarse así:
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi
Busca en el Docker Hub imágenes
Puede buscar imágenes en Docker Hub usando el comando de búsqueda :
docker search <term>
Por ejemplo:
$ docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 3565 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 717 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 232 [OK]
...
Inspeccionando imagenes
docker inspect <image>
La salida está en formato JSON. Puede usar la utilidad de línea de comandos jq
para analizar e imprimir solo las teclas deseadas.
docker inspect <image> | jq -r '.[0].Author'
El comando anterior mostrará el nombre del autor de las imágenes.
Etiquetando imagenes
Etiquetar una imagen es útil para realizar un seguimiento de diferentes versiones de imágenes:
docker tag ubuntu:latest registry.example.com/username/ubuntu:latest
Otro ejemplo de etiquetado:
docker tag myApp:1.4.2 myApp:latest
docker tag myApp:1.4.2 registry.example.com/company/myApp:1.4.2
Guardando y cargando imágenes de Docker
docker save -o ubuntu.latest.tar ubuntu:latest
Este comando guardará la imagen de ubuntu:latest
como un archivo comprimido en el directorio actual con el nombre ubuntu.latest.tar
. Este archivo tarball se puede mover a otro host, por ejemplo, mediante rsync
, o archivado en el almacenamiento.
Una vez que se haya movido el tarball, el siguiente comando creará una imagen del archivo:
docker load -i /tmp/ubuntu.latest.tar
Ahora es posible crear contenedores desde ubuntu:latest
imagen como de costumbre.