login

IronWoods.es

Desarrollo web

Imágenes

Listar imágenes Docker en el sistema

docker images

Eliminar una imagen Docker

docker rmi <image-id>

Docker CLI - Delete an image

NOTA: Si la imagen esta siendo utilizada por algun contenedor deberemos eliminar el contenedor previamente.

Ejemplo de cómo crear una imagen Docker a partir de un contenedor

Un contenedor se "crea" a partir de una imagen. A su vez podemos usar un contenedor que hemos ejecutado (y modificado) para crear una nueva imagen. Esta será diferente de la original al incluir las modificaciones que hicimos al contenedor.

Para entender el proceso, creo una imagen a partir del ejemplo de ejecución de contenedor Docker en el que he instalo el editor nano.

Entonces, una vez ejecutado el contenedor, instalado nano y finalizado el contenedor. Listamos los contenedores:

docker ps -a

Crear imágenes a partir de un contenedor:

docker commit

En este orden: asigno el autor y un email de contacto, guardo un mensaje con la versión de la imagen, identifico el contenedor de origen, con las tres primeras letras de su ID (d68), y finalmente nombro la imagen como "ironwoods/alpine" y le asigno el tag: "nano":

docker commit -a "foo <foo@ironwoods.es>" -m "version 1.0.0" d68 "ironwoods/alpine:nano"

El comando devuelve el ID de la imagen.

Buscar y obtener imágenes Docker

Podemos buscar imágenes de Docker para descargar en el sitio web Docker Hub.

Usando la consola tenemos el comando:

docker search <palabra-a-buscar>

por ejemplo:

docker search redis

Se puede filtrar por número de estrellas, por ejemplo, 20 o más:

docker search -s 20 redis

Descargar una imagen:

docker pull <nombre-imagen>

Índice de contenidos

Contenedores

Arrancar un contenedor Docker

docker run <container_name>

o bien:

docker run <container_id>

Este comando arranca el contenedor y seguidamente ejecuta un comando, la instrucción va seguida pues de un comando, por ejemplo, para listar los directorios (dentro del contenedor):

docker run <container_id> ls

NOTA: si la imagen no se encuentra disponible localmente se descargará antes de ejecutarse.

Arrancar un contenedor Docker parado:

docker start <container_name>

Docker CLI - Run a container

Docker CLI - Start a container

Ejemplo de ejecución de contenedor Docker: Arrancar contenedor, actualizar el repositorio e instalar nano.

Nota: al arrancar contenedores Docker accedemos a ellos como root.

Arrancar contenedor Alpine Linux en modo interactivo con acceso a la consola:

docker run -it alpine /bin/sh

Actualizar el repositorio:

# apk update

# apk upgrade

Instalar nano:

# apk add nano

Probar nano:

# ls

Dockerfile README.md docker-compose.yml requirements.txt ...


# nano README.md

Salir del contenedor:

# exit

Listar contenedores Docker

Listar los contenedores en ejecución:

docker ps

Listar todos los contenedores (en ejecución y detenidos):

docker ps -a

Listar los identificadores de todos los contenedores:

docker ps -a -q

Listar los identificadores "completos" de todos los contenedores:

docker ps -a -q --no-trunc

Detener un contenedor Docker

docker stop <container_id>

o bien:

docker kill <container_id>

Docker CLI - Stop a container (killing the process)

Docker CLI - Stop a container

Eliminar contenedores Docker

Eliminar un contenedor en ejecución:

docker stop <container_id>

docker rm <container_id>

o bien:

docker rm --force <container_id>

Eliminar un contenedor que se encuentra detenido:

docker rm <container_id>

Eliminar el último contenedor detenido:

docker rm $(docker ps -a -q -l)

Eliminar todos los contenedores detenidos:

docker rm $(docker ps -a -q)

o bien:

docker container prune

Docker CLI - Remove all stopped containers

Docker CLI - Remove one or more containers

Índice de contenidos

Docker y Linux

NOTA: En Linux los comandos Docker van precedidos por sudo a no ser que se cree un un grupo de Docker.

Comandos Linux útiles al trabajar con contenedores Docker.

¿Qué proceso está usando puerto 80?

lsof -i TCP:80

Índice de contenidos