Guía Completa: Instalación y Configuración de Docker
Basado en CREACIÓN DE UNA IMAGEN DOCKER FI UNAM
¿Qué es Docker?
Docker es una plataforma que permite desarrollar, distribuir e instalar aplicaciones mediante contenedores. Estos contenedores son entornos aislados que incluyen todo lo necesario para ejecutar una aplicación sin depender del sistema operativo anfitrión.
- Aislamiento y portabilidad.
- Ideal para entornos CI/CD.
- Evita problemas de configuración entre equipos.
Arquitectura Docker
Modelo cliente-servidor con componentes clave:
- Cliente Docker: Ejecuta comandos como
docker build,docker run. - Docker Daemon: Construye y ejecuta contenedores.
- Docker Registries: Almacenan imágenes (ej. Docker Hub).
Objetos Docker
- Imágenes
- Contenedores
- Redes
- Volúmenes
Instalación de Docker Engine
Ubuntu/Debian
sudo apt-get remove docker docker-engine docker.io containerd runc sudo apt-get install ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io
Fedora
sudo dnf remove docker docker-client ... sudo dnf install dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker
macOS (Colima)
brew install colima brew install docker colima start --cpu 2 --memory 4 --arch aarch64
Creación y Administración de Contenedores
sudo docker run -it -v $UNAM_HOME:$UNAM_HOME --name c0-ubuntu-jtm --hostname h0-ubuntu-jtm.fi.unam --shm-size=2gb -e DISPLAY=$DISPLAY ubuntu:noble bash
Comandos útiles:
docker ps -a: Lista contenedores.docker start <nombre>: Inicia contenedor.docker attach <nombre>: Accede al contenedor.
Configuraciones adicionales
Evitar sudo
sudo usermod -aG docker <usuario>
Alias recomendados
alias dockerUbuntuBase='docker start c0-ubuntu-jtm && docker attach c0-ubuntu-jtm' alias dockerUbuntuBaseT='docker exec -it c0-ubuntu-jtm bash'
Instalación de paquetes
Ubuntu
apt update && apt upgrade apt-get install -y sudo nano unzip iputils-ping locales lshw passwd
CentOS/Oracle Linux
dnf update dnf install -y bc binutils glibc nano sudo wget ...
Creación de usuarios
groupadd -g 1000 jorge useradd -u 1000 -g jorge -m -d /home/jorge -s /bin/bash jorge usermod -aG sudo jorge passwd jorge
Creación de imágenes personalizadas
docker commit c0-ubuntu-jtm ubuntu-jtm:1.0 docker images
Comandos básicos para trabajar con imágenes en Docker
Las imágenes son la base de los contenedores en Docker. Aquí tienes los comandos más importantes para gestionarlas:
1. Listar imágenes disponibles
docker images
Muestra todas las imágenes descargadas en tu máquina, incluyendo REPOSITORY, TAG, IMAGE ID, tamaño y fecha de creación.
2. Descargar una imagen desde Docker Hub
docker pull ubuntu:latest
Descarga la imagen ubuntu con el tag latest. Puedes especificar otra versión si lo deseas.
3. Eliminar una imagen
docker rmi ubuntu:latest
Elimina la imagen indicada. Si está en uso por algún contenedor, deberás eliminar primero el contenedor.
4. Etiquetar una imagen
docker tag ubuntu:latest mi-ubuntu:1.0
Crea un alias para la imagen, útil para subirla a un repositorio privado o público.
5. Inspeccionar una imagen
docker inspect ubuntu:latest
Muestra detalles internos de la imagen, como configuración, capas y variables de entorno.
6. Guardar una imagen en un archivo tar
docker save -o ubuntu_latest.tar ubuntu:latest
Exporta la imagen a un archivo .tar, útil para respaldos o transferencias sin conexión.
7. Cargar una imagen desde un archivo tar
docker load -i ubuntu_latest.tar
Importa una imagen previamente guardada en un archivo .tar.
docker image prune para eliminar imágenes no utilizadas y liberar espacio.
Docker: Ambiente e Instalación