Docker desde Terminal

Antes de comenzar la misión, tu equipo debe estar preparado.

Docker será el motor que dará vida a toda la infraestructura.

Instalar Docker correctamente desde la terminal en Ubuntu utilizando el repositorio oficial.

Evita instalar versiones antiguas desde repositorios genéricos.

Queremos herramientas profesionales.


Actualizar el sistema

sudo apt update
sudo apt upgrade -y

Esto reduce la probabilidad de conflictos de dependencias.

Los ingenieros prudentes actualizan primero.


Instalar paquetes necesarios

sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

Estos paquetes permiten a Ubuntu comunicarse de forma segura con repositorios externos.


Añadir la clave oficial de Docker

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg

Una clave GPG verifica que el software proviene de la fuente legítima.

Sin esto, cualquiera podría hacerse pasar por Docker.

Y eso sería… una idea terrible.


Añadir el repositorio oficial

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Ahora Ubuntu sabrá dónde buscar Docker.


Instalar Docker Engine

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Aquí ocurre la magia.


Verificar la instalación

sudo systemctl status docker

Debe aparecer como:

👉 active (running)

Ahora prueba:

sudo docker run hello-world

Si ves el mensaje de bienvenida…

Docker está vivo.


MUY recomendado — Usar Docker sin sudo

Trabajar con sudo constantemente es incómodo.

Haz esto:

sudo usermod -aG docker $USER

Después CIERRA SESIÓN o reinicia.

No es opcional — el cambio de grupo necesita recargar permisos.

Comprueba:

docker run hello-world

Video de la lección

Crear y ejecutar contenedores

Contenedor interactivo básico

docker run -it ubuntu

Qué ocurre aquí:

  • run → crea el contenedor si no existe
  • -i → mantiene STDIN abierto
  • -t → asigna terminal
  • ubuntu → imagen base

Si no está descargada, Docker la bajará automáticamente.

Para salir sin detener el contenedor:

Ctrl + P + Q

Para salir deteniéndolo:

exit

Nombrar un contenedor

docker run -it --name mi-ubuntu ubuntu

Nombrar contenedores evita trabajar con IDs largos e ilegibles.

Tu yo del futuro te lo agradecerá.


Persistencia usando carpeta del host

docker run --name mi-ubuntu -it -v /datos-persistentes:/datos ubuntu

Qué significa esto:

HOST → CONTENEDOR
/datos-persistentes → /datos

Todo lo que guardes en /datos sobrevivirá aunque borres el contenedor.

Si la carpeta no existe, Docker la crea.


Persistencia usando volumen Docker (RECOMENDADO)

Primero crea el volumen:

docker volume create mi-volumen

Ahora úsalo:

docker run --name mi-ubuntu -it -v mi-volumen:/datos ubuntu

👉 Docker gestionará la ubicación real del almacenamiento.

Ventajas:

  • Más seguro
  • Mejor rendimiento
  • Independiente del sistema de carpetas

⚠️ Nota para Windows

docker run -it -v C:\ruta\local:/ruta/en/contenedor ubuntu

En Ubuntu Desktop NO se usa esta sintaxis.

La equivalente sería:

docker run -it -v /home/usuario/datos:/datos ubuntu

Consultar información del sistema Docker

Ver contenedores en ejecución

docker ps

Ver TODOS los contenedores

docker ps -a

Aquí aparecerán también los detenidos.

Muy útil para debugging.


Ver imágenes descargadas

docker images

O su versión moderna:

docker image ls

Crear imágenes personalizadas

Imagina que has instalado paquetes dentro del contenedor y no quieres repetir el proceso.

Puedes congelar ese estado.

docker commit mi-ubuntu mi-imagen-personalizada

Ahora tienes una nueva imagen lista para usar:

docker run -it mi-imagen-personalizada

📌 Importante para mentalidad profesional:

docker commit es útil para aprender…

Pero en entornos reales se prefiere usar Dockerfile porque permite reproducibilidad.


Operaciones con contenedores

Arrancar un contenedor detenido

docker start mi-ubuntu

Arrancar y conectarte directamente

docker start -ai mi-ubuntu

Parámetros:

  • -a → attach (conectar terminal)
  • -i → modo interactivo

Ejecutar comandos dentro de un contenedor activo

docker exec -it mi-ubuntu bash

Esto abre una nueva shell.

Extremadamente usado por administradores.


Eliminar un contenedor

⚠️ Debe estar detenido.

docker rm mi-ubuntu

Para forzar:

docker rm -f mi-ubuntu

Limpiar contenedores detenidos automáticamente

docker container prune

Docker pedirá confirmación.

Este comando es famoso por liberar gigas de disco en laboratorios.