Docker - Comandos básicos

Instalar docker

Para realizar la instalación de docker la mejor opción es seguir la documentación oficial de docker engine. Dependiendo del sistema operativo en el que trabajes tendrá sus comandos.

Consultar ayuda de los comandos

En la ayuda se pueden consultar las diferentes opciones y posibles alias del comando.

docker --help
docker create --help
docker run --help
docker container --help
docker images --help
docker compose --help

Crear un contenedor

docker create [IMAGEN]

# Mantener abierta la entrada estandar (STDIN)
docker create --interactive [IMAGEN]
docker create -i [IMAGEN]

# Mantener abierta la entrada estandar (STDIN) y TTY
docker create --interactive --tty [IMAGEN]
docker create -it [IMAGEN]

# Asignando un nombre al contenedor
docker create --name [NOMBRE_CONTENEDOR] [IMAGEN]

# Crear un contenedor e iniciarlo
docker run --interactive --tty [IMAGEN]
docker run -i -t [IMAGEN]
docker run -it [IMAGEN]

# Asignando un nombre al contenedor
docker run -it --name [NOMBRE_CONTENEDOR] [IMAGEN]

Listar contenedores

# Listar contenedores activos
docker container list
docker container ls
docker ps

# Listar todos contenedores (la opción -a es la abreviatura de --all)
docker container list -a
docker container ls -a
docker ps -a

# Listar contenedores filtrando (la opción -f es la abreviatura de --filter)
# Utlizamos el símbolo * como comodín
docker ps -f "name=[NOMBRE_PARCIAL]*"

Control de contenedores

# Iniciar un contenedor existente
docker container start [ID_NOMBRE_CONTENEDOR]
docker start [ID_NOMBRE_CONTENEDOR]

# Iniciar un contenedor y conectar a la entrada estandar (STDIN)
docker start --interactive [ID_NOMBRE_CONTENEDOR]
docker start -i [ID_NOMBRE_CONTENEDOR]

# Parar un contenedor activo
docker container stop [ID_NOMBRE_CONTENEDOR]
docker stop [ID_NOMBRE_CONTENEDOR]

Inspeccionar un contenedor

docker inspect [ID_NOMBRE_CONTENEDOR]

Conectar a un contenedor activo

docker container attach [ID_NOMBRE_CONTENEDOR]
docker attach [ID_NOMBRE_CONTENEDOR]

Copiar ficheros

# Copiar del host al contenedor
docker container cp [RUTA_ORIGEN] [ID_NOMBRE_CONTENEDOR]:[RUTA_DESTINO]
docker cp [RUTA_ORIGEN] [ID_NOMBRE_CONTENEDOR]:[RUTA_DESTINO]

# Copiar del contenedor al host
docker container cp [RUTA_ORIGEN] [ID_NOMBRE_CONTENEDOR]:[RUTA_DESTINO]
docker cp [RUTA_ORIGEN] [ID_NOMBRE_CONTENEDOR]:[RUTA_DESTINO]

Descargar imágenes

docker image pull [NOMBRE_IMAGEN]
docker image pull [NOMBRE_IMAGEN]:[TAG]

Listar imágenes

docker image list
docker image ls
docker images

Borrar imágenes descargadas

docker image remove [NOMBRE_IMAGEN]
docker rmi [NOMBRE_IMAGEN]

# Si un contenedor utiliza la imagen debe forzarse el borrado(la opción -f es la abreviatura de --force). 
docker image remove -f [NOMBRE_IMAGEN]
docker rmi -f [NOMBRE_IMAGEN]

Liberar espacio

Buscaremos las imágenes que tenemos descargadas y su tamaño

docker images

Borrar imagenes

docker image remove [NOMBRE_IMAGEN]
docker rmi [NOMBRE_IMAGEN]

# Si un contenedor utiliza la imagen debe forzarse el borrado(la opción -f es la abreviatura de --force). 
docker image remove -f [NOMBRE_IMAGEN]
docker rmi -f [NOMBRE_IMAGEN]

Al borrar una imagen que es usada con un contenedor y se encuentra activo quedará en estado dangling. En estos casos será necesario parar el contenedorr y borrar la imagen. El contenedor tendrá una copia de su propia imagen para seguir funcionando.

docker images --filter "dangling=true"

Borrar imagenes que no estén siendo usadas por ningún contenedor

docker image prune --all

Borrar imágenes dangling que no estén siendo usadas por ningún contenedor

docker image prune 

Limpiar sistema

Antes de confirmar el comando lee el warning.

docker system prune