Docker es una plataforma de contenedores que permite empaquetar aplicaciones con todas sus dependencias en imágenes portables, ejecutables en cualquier sistema operativo compatible. Esta guía cubre la instalación en CentOS y los comandos fundamentales para trabajar con contenedores.
Instalación de Docker en CentOS
Docker se divide en dos ediciones desde la versión 17.03: CE (Community Edition) y EE (Enterprise Edition). A continuación se describe la instalación de la edición comunitaria.
Eliminar versiones previas
Si existen versiones anteriores instaladas, conviene removerlas primero:
# Remover paquetes antiguos de Docker
sudo yum remove -y docker \
docker-client \
docker-common \
docker-engine \
docker-latest \
docker-latest-logrotate \
docker-logrotate
Configurar repositorio e instalar dependencias
# Agregar repositorio con mirror nacional
sudo yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
# Instalar utilidades necesarias
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Instalar y activar Docker CE
# Habilitar repositorio e instalar
sudo yum-config-manager --enable docker-ce-edge
sudo yum makecache fast
sudo yum install -y docker-ce
# Activar servicio al arranque e iniciarlo
sudo systemctl enable docker
sudo systemctl start docker
Configurar permisos de usuario
Para evitar ejecutar Docker siempre con sudo, añade tu usuario al grupo docker:
sudo groupadd docker
sudo usermod -aG docker $USER
Verificar la instalación
Ejecuta el contenedor de prueba:
docker run hello-world
Si la instalación fue exitosa, verás un mensaje confirmando que Docker funciona correctamante.
Para Windows y macOS, basta con descargar Docker Desktop desde el sitio oficial e instalarlo de forma gráfica.
Conceptos fundamentales
Docker se basa en tres elementos clave:
- Imagen (Image): Plantilla de solo lectura que contiene un sistema de archivos completo. Por ejemplo,
ubuntu:18.04incluye el sistema base mínimo de Ubuntu. - Contenedor (Container): Instancia en ejecución de una imagen. Puede iniciarse, detenerse, pausarse y eliminarse.
- Repositorio (Repository): Almacenamiento centralizado donde se guardan y distribuyen las imágenes, como Docker Hub.
Coamndos para gestión de imágenes
# Buscar una imagen en Docker Hub
docker search nginx
# Descargar una imagen
docker pull nginx:latest
# Listar imágenes almacenadas localmente
docker image ls
# Eliminar una imagen por su identificador
docker image rm <imagen_id>
Comandos para gestión de contenedores
# Crear y ejecutar un contenedor en segundo plano
docker run --name mi_servidor -d nginx
# Listar contenedores activos
docker container ls
# Listar todos los contenedores, incluyendo detenidos
docker container ls --all
# Iniciar o detener un contenedor existente
docker container start mi_servidor
docker container stop mi_servidor
# Mapear puertos entre contenedor y host
docker run -d -p 8080:80 --name web nginx
# El puerto 80 del contenedor se vincula al puerto 8080 del host
# Eliminar un contenedor
docker container rm <contenedor_id>
# Visualizar logs del contenedor
docker container logs mi_servidor
# Acceder al shell del contenedor
docker exec -it mi_servidor /bin/sh
El flag -i mantiene la entrada estándar abierta, mientras que -t asigna una terminal. Al ingresar al contenedor, puedes ejecutar comandos Linux habituales y salir con exit.