Docker sin renegar: comandos basicos para el dia a dia

Docker sin renegar: comandos basicos para el dia a dia

Apunte rapido con comandos frecuentes para laburar con imagenes y contenedores,
sin ponerse pesado porque Docker ya se encarga de ponernos serios cuando algo
no levanta.

La idea es tener a mano lo basico para el dia a dia: bajar imagenes, crear
contenedores, publicar puertos, revisar logs y limpiar recursos. Sirve como
referencia rapida para laboratorio, practica o para ese momento hermoso en el
que sabes que el comando existe, pero tu memoria se fue a tomar mate.

Probado con

  • Docker Engine 28.x
  • Docker CLI 28.x
  • Comandos basicos compatibles con versiones modernas de Docker

Flujo tipico

Ejemplo completo para levantar Nginx, revisar que este corriendo, mirar logs y
limpiar el contenedor al final. Ordenadito, porque si no despues queda todo
dando vueltas como tupper sin tapa.

docker pull nginx
docker run --name mi-nginx -p 8080:80 -d nginx
docker ps
docker logs mi-nginx
docker stop mi-nginx
docker rm mi-nginx

Imagenes

Descargar una imagen

Por defecto, Docker baja imagenes desde Docker Hub.

docker pull <imagen>

Ejemplo:

docker pull mongo

Tambien podes indicar una version especifica usando tags. Esto es clave si
queres evitar el clasico “ayer andaba” con cara de no entender nada.

docker pull ubuntu:24.04

Listar imagenes locales

Para ver que imagenes tenes descargadas en la maquina:

docker images

Tambien podes usar:

docker image ls

Borrar una imagen

Cuando ya no la necesitas, la podes borrar:

docker image rm <imagen>

Ejemplo:

docker image rm mongo

Si la imagen esta siendo usada por un contenedor, primero tenes que borrar el
contenedor o forzar el borrado. Con -f anda, pero usalo con criterio: no es
un boton de “arreglar todo”, aunque a veces den ganas.

docker image rm -f <imagen>

Contenedores

Crear un contenedor

Crea el contenedor, pero no lo arranca. Queda preparado, como el mate antes del
agua.

docker create <imagen>

Ejemplo:

docker create mongo

Crear un contenedor con nombre

Ponerle nombre ayuda mucho. Despues no tenes que andar copiando IDs eternos
como si fueran CBU.

docker create --name <nombre-contenedor> <imagen>

Ejemplo:

docker create --name monguito mongo

Crear un contenedor con puerto publicado

Formato:

docker create -p <puerto-host>:<puerto-contenedor> --name <nombre-contenedor> <imagen>

Ejemplo:

docker create -p 27017:27017 --name monguito mongo

El primer puerto es el de tu maquina. El segundo es el puerto dentro del
contenedor. Si los mezclas, no pasa nada grave, solo perdes un rato mirando la
pantalla con desconfianza.

Iniciar un contenedor

docker start <nombre-contenedor>

Tambien podes usar el ID del contenedor:

docker start <container-id>

Detener un contenedor

docker stop <nombre-contenedor>

Borrar un contenedor

El contenedor debe estar detenido.

docker rm <nombre-contenedor>

Para borrar un contenedor aunque este corriendo:

docker rm -f <nombre-contenedor>

Usa -f cuando sabes lo que estas bajando. Si es una base con datos que
querias conservar, ahi Docker no te va a abrazar.

Ejecutar contenedores

Descargar, crear e iniciar en un solo paso

docker run baja la imagen si no existe localmente, crea el contenedor y lo
arranca. Es el comando “haceme todo junto, maestro”.

docker run -d <imagen>

Ejemplo:

docker run -d mongo

Ejecutar con nombre y puerto publicado

docker run --name <nombre-contenedor> -p <puerto-host>:<puerto-contenedor> -d <imagen>

Ejemplo:

docker run --name monguito -p 27017:27017 -d mongo

Ejecutar un contenedor temporal

--rm borra el contenedor automaticamente cuando termina. Ideal para pruebas
rapidas y para no dejar basura tecnica en la maquina.

docker run --rm -it <imagen> <comando>

Ejemplo:

docker run --rm -it ubuntu:24.04 bash

Ejecutar con variables de entorno

docker run -e <VARIABLE>=<valor> <imagen>

Ejemplo:

docker run --name mi-nginx -e NGINX_HOST=localhost -d nginx

Las variables de entorno sirven para pasar configuracion sin tocar la imagen.
Para secretos, mejor usar un mecanismo mas prolijo si esto sale del laboratorio.

Ejecutar con volumen

Te permite montar una ruta del host dentro del contenedor.

docker run -v <ruta-host>:<ruta-contenedor> <imagen>

Ejemplo:

docker run --name mi-nginx -v $PWD/html:/usr/share/nginx/html:ro -p 8080:80 -d nginx

El :ro lo monta en solo lectura. Si el contenedor no necesita escribir ahi,
mejor asi: menos chances de que toque algo que despues te haga suspirar fuerte.

Ejecutar un comando dentro de un contenedor

docker exec -it <nombre-contenedor> bash

Si la imagen no tiene bash, proba con sh.

docker exec -it <nombre-contenedor> sh

Esto es util para revisar archivos, probar conectividad o confirmar que el
servicio esta como pensabas. Tambien para descubrir que no estaba como pensabas,
que es parte del oficio.

Consultas y logs

Ver contenedores corriendo

docker ps

Ver todos los contenedores

Incluye tambien los contenedores detenidos.

docker ps -a

Ver logs de un contenedor

docker logs <nombre-contenedor>

Con timestamps:

docker logs -t <nombre-contenedor>

Seguir logs en tiempo real:

docker logs -f <nombre-contenedor>

Los logs son el primer lugar para mirar cuando algo no arranca. Antes de tocar
cinco cosas a la vez, miralos. Tu yo del futuro te lo va a agradecer.

Ver informacion detallada

docker inspect <nombre-contenedor>

inspect devuelve mucha informacion en JSON: redes, mounts, variables,
configuracion y demas. Es largo, pero cuando necesitas saber que esta pasando,
es una linterna bastante potente.

Limpieza

Ojo: antes de ejecutar comandos de limpieza, revisa que no tengas contenedores,
imagenes o recursos importantes en la maquina. Limpiar esta buenisimo; limpiar
de mas es deporte extremo.

Borrar contenedores detenidos

docker container prune

Borrar imagenes sin uso

docker image prune

Borrar recursos sin uso

Borra contenedores detenidos, redes sin uso, imagenes dangling y cache de build.

docker system prune

Si queres ir mas fuerte, Docker tiene opciones mas agresivas, pero antes de
usarlas conviene leer bien que van a borrar. En produccion, doble chequeo y
respiracion profunda.

Referencias

Join the ConversationLeave a reply

Your email address will not be published. Required fields are marked *

Comment*

Name*

Website