- 1 1. Introducción
- 2 2. Instalación de Docker en Ubuntu
- 3 3. Operaciones básicas de imágenes Docker
- 4 4. Crear imágenes personalizadas con Dockerfile
- 5 5. Configurar un entorno japonés en contenedores Ubuntu
- 6 6. Optimizar y minimizar imágenes Docker
- 7 7. Ejemplo práctico: desarrollo de aplicaciones en contenedores Ubuntu
- 8 8. Preguntas frecuentes y solución de problemas
1. Introducción
¿Qué es Docker?
Docker es una plataforma que utiliza tecnología de virtualización basada en contenedores para desarrollar, distribuir y ejecutar aplicaciones de manera eficiente. A diferencia de las máquinas virtuales tradicionales (VM), los contenedores comparten el kernel del sistema operativo anfitrión, lo que permite un arranque más rápido y un menor consumo de recursos.
Beneficios de usar Docker en Ubuntu
Ubuntu es una de las distribuciones Linux con mayor compatibilidad con Docker. Las razones principales incluyen:
- Soporte oficial : Docker brinda soporte oficial a Ubuntu, lo que permite una instalación sencilla a través del repositorio oficial.
- Gestión de paquetes estable : El gestor de paquetes APT de Ubuntu hace que el manejo de versiones sea directo.
- Amplio soporte comunitario : Ubuntu cuenta con una gran base de usuarios a nivel mundial, facilitando la resolución de problemas cuando surgen.
Qué aprenderá en este artículo
Esta guía explica los siguientes temas paso a paso:
- Cómo instalar Docker en Ubuntu
- Operaciones básicas con imágenes Docker
- Creación de imágenes personalizadas mediante Dockerfile
- Configuración de la localización japonesa en un contenedor Ubuntu
- Optimización y minimización de imágenes Docker
- Desarrollo de aplicaciones dentro de contenedores Ubuntu
- Errores comunes y solución de problemas
El contenido es útil tanto para principiantes como para usuarios avanzados, por lo que puede consultarse en cualquier etapa.
2. Instalación de Docker en Ubuntu
Instalación de Docker usando el repositorio oficial
En Ubuntu, puede instalar Docker fácilmente mediante el repositorio oficial. Siga los pasos a continuación para preparar su entorno.
1. Eliminar paquetes Docker existentes
Ubuntu puede incluir un paquete llamado docker.io, que podría ser una versión anterior. Elimínelo antes de instalar la última versión de Docker.
sudo apt remove docker docker-engine docker.io containerd runc
2. Instalar paquetes requeridos
Instale los paquetes de dependencia antes de la instalación.
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
3. Añadir el repositorio oficial de Docker
Agregue la clave GPG oficial de Docker y configure el repositorio.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. Instalar Docker
Después de añadir el repositorio, instale Docker.
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
5. Verificar la instalación
Compruebe que Docker se haya instalado correctamente mostrando la información de la versión.
docker --version
Configuración inicial después de la instalación
1. Iniciar y habilitar el servicio Docker
Inicie el servicio Docker y habilite su arranque automático al iniciar el sistema.
sudo systemctl start docker
sudo systemctl enable docker
2. Permitir a usuarios no root ejecutar Docker
Por defecto, solo root puede ejecutar Docker. Permita que usuarios regulares ejecuten los comandos de Docker.
sudo usermod -aG docker $USER
Cierre sesión y vuelva a iniciarla para que los cambios surtan efecto.
3. Probar el funcionamiento de Docker
Ejecute el contenedor hello-world usando una cuenta de usuario regular.
docker run hello-world
Si la salida incluye “Hello from Docker!”, la instalación fue exitosa.

3. Operaciones básicas de imágenes Docker
¿Qué es una imagen Docker?
Una imagen Docker funciona como una plantilla para crear contenedores. Al usar una imagen Docker basada en Ubuntu, puede lanzar rápidamente un entorno Ubuntu.
Descargar imágenes Ubuntu desde Docker Hub
Docker Hub ofrece numerosas imágenes Docker oficiales. Para descargar una imagen Ubuntu, ejecute:
docker pull ubuntu
Iniciar y detener contenedores
Utilice la imagen Ubuntu descargada para iniciar un contenedor:
docker run -it ubuntu bash
Esto abre una shell dentro del contenedor Ubuntu, permitiéndote operar dentro de él.
Listar contenedores
Mostrar contenedores en ejecución:
docker ps
Mostrar todos los contenedores, incluidos los detenidos:
docker ps -a
Detener y eliminar contenedores
Detener un contenedor en ejecución:
docker stop [container ID or name]
Eliminar un contenedor innecesario:
docker rm [container ID or name]
Gestionar imágenes Docker
Listar imágenes Docker descargadas:
docker images
Eliminar una imagen:
docker rmi [image ID]
4. Crear imágenes personalizadas con Dockerfile
¿Qué es un Dockerfile?
Un Dockerfile es un archivo de configuración utilizado para crear imágenes Docker. Con base en las instrucciones escritas en el Dockerfile, puedes crear imágenes Docker personalizadas. Esto permite unificar entornos de desarrollo o crear imágenes que incluyan los paquetes requeridos.
Sintaxis básica del Dockerfile
Un Dockerfile suele incluir los siguientes comandos:
| Command | Description |
|---|---|
FROM | Specifies the base image |
RUN | Executes commands to build the image |
COPY | Copies files into the container |
WORKDIR | Sets the working directory |
CMD | Default command executed when the container starts |
ENTRYPOINT | Defines the entry point of the container |
Crear una imagen personalizada basada en Ubuntu
Sigue los pasos a continuación para crear una imagen Docker personalizada basada en Ubuntu.
1. Crear un directorio de trabajo
Primero, crea un nuevo directorio de proyecto y muévete a él.
mkdir my-ubuntu-image
cd my-ubuntu-image
2. Crear un Dockerfile
Crea un Dockerfile dentro del directorio y escribe el siguiente contenido:
# Base Ubuntu official image
FROM ubuntu:latest
# Maintainer information (optional)
LABEL maintainer="your-email@example.com"
# Update package list and install basic tools
RUN apt update && apt install -y curl vim git
# Set working directory
WORKDIR /workspace
# Default command when the container starts
CMD ["bash"]
3. Construir la imagen Docker
Construye una imagen personalizada a partir de tu Dockerfile:
docker build -t my-ubuntu-image .
La opción -t asigna un nombre a la imagen.
4. Verificar la imagen
Comprueba la imagen recién construida:
docker images
5. Ejecutar un contenedor
Inicia un contenedor a partir de la imagen personalizada:
docker run -it my-ubuntu-image
Esta imagen incluye herramientas como curl y vim.
5. Configurar un entorno japonés en contenedores Ubuntu
La imagen predeterminada de Ubuntu utiliza un entorno en inglés. Para usar japonés, se requiere configuración adicional.
Configurar la localización japonesa
Para habilitar la visualización e introducción de japonés en un contenedor Ubuntu, instala la localización japonesa.
1. Instalar paquetes requeridos
apt update
apt install -y language-pack-ja locales
2. Configurar la localización
Genera y aplica la localización:
locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8
3. Aplicar la configuración
export LANG=ja_JP.UTF-8
Configurar la entrada japonesa
Para introducir caracteres japoneses en la terminal, instala ibus-mozc:
apt install -y ibus-mozc
Si utilizas aplicaciones GUI, agrega las siguientes variables de entorno:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
Uso de aplicaciones GUI
Para ejecutar aplicaciones GUI dentro de un contenedor Docker, utiliza un servidor X en la máquina host.
Ejecuta el contenedor con X11 habilitado:
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image
6. Optimizar y minimizar imágenes Docker
Las imágenes Docker pueden optimizarse para mejorar la velocidad de inicio del contenedor y reducir el uso de almacenamiento. Aquí hay varias técnicas para crear imágenes ligeras.
Cómo crear una imagen ligera basada en Ubuntu
La imagen predeterminada ubuntu:latest es relativamente grande. Usar una opción más ligera como ubuntu:minimal ayuda a reducir el tamaño del contenedor.
FROM ubuntu:minimal
Otra opción es usar Alpine Linux, que es significativamente más pequeña que Ubuntu.
FROM alpine:latest
RUN apk add --no-cache bash curl
Usar Alpine puede reducir el tamaño de la imagen en varios cientos de megabytes.
Reducir el tamaño de la imagen eliminando archivos innecesarios
Puedes reducir el tamaño de la imagen eliminando los archivos de caché innecesarios creados por apt-get.
RUN apt update && apt install -y curl vim \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
En particular, el comando rm -rf /var/lib/apt/lists/* elimina las listas de paquetes y los datos no utilizados.
Uso de compilaciones multi‑etapa
Las compilaciones multi‑etapa te permiten usar herramientas solo durante el proceso de construcción, manteniendo la imagen final ligera.
FROM ubuntu as builder
RUN apt update && apt install -y gcc
FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc
De esta manera, evitas incluir herramientas de desarrollo en la imagen final, lo que resulta en una huella mucho más pequeña.
7. Ejemplo práctico: desarrollo de aplicaciones en contenedores Ubuntu
Esta sección presenta cómo configurar entornos de desarrollo dentro de contenedores Ubuntu.
Configuración de un entorno de desarrollo Python
Crea el siguiente Dockerfile para configurar un entorno de desarrollo Python en un contenedor Ubuntu:
FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]
Construye la imagen y ejecuta el contenedor:
docker build -t python-dev .
docker run -it python-dev
Este entorno te permite usar el comando python3 para el desarrollo y pruebas de scripts.
Configuración de un entorno de desarrollo Node.js
Para configurar un entorno de desarrollo Node.js, utiliza el siguiente Dockerfile:
FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]
Construye y ejecuta el contenedor:
docker build -t node-dev .
docker run -it node-dev
Este entorno permite la ejecución de JavaScript y el desarrollo de aplicaciones con el comando node.
8. Preguntas frecuentes y solución de problemas
El uso de Docker puede generar varios problemas. A continuación se presentan preguntas comunes y soluciones típicas.
Diferencia entre Docker y máquinas virtuales
- Docker: Comparte el kernel del sistema operativo host, lo que lo hace ligero y permite un arranque rápido de los contenedores.
- Máquinas virtuales (VMs): Cada VM incluye su propio sistema operativo, lo que conlleva un mayor consumo de recursos y un arranque más lento.
Docker sobresale en la optimización de recursos y es adecuado para entornos de desarrollo y despliegues automatizados.
Persistencia de datos en contenedores Ubuntu
Para conservar los datos incluso después de que un contenedor se detenga, usa montajes de volúmenes:
docker run -v my_data:/data ubuntu
Incluso si el contenedor se elimina, los datos almacenados en el volumen my_data pueden reutilizarse.
Errores comunes y soluciones
1. Error permission denied
Si ves permission denied al intentar ejecutar Docker, es posible que tu usuario no pertenezca al grupo docker.
Agrega el usuario al grupo Docker:
sudo usermod -aG docker $USER
Cierra sesión y vuelve a iniciarla para aplicar el cambio.
2. Error image not found
Si una imagen ha sido eliminada de Docker Hub, especifica una etiqueta más reciente al descargarla:
docker pull ubuntu:22.04
Especificar una versión explícita garantiza que se recupere la imagen correcta.
