Cómo instalar y usar Docker en Ubuntu: Guía completa para principiantes y avanzados

目次

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 (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.

Ventajas de usar Docker en Ubuntu

Ubuntu es una de las distribuciones de Linux más compatibles con Docker. Entre las razones destacan:
  • Soporte oficial: Docker ofrece soporte oficial para Ubuntu y puede instalarse fácilmente desde los repositorios oficiales.
  • Gestión estable de paquetes: Gracias al gestor de paquetes APT de Ubuntu, la administración de versiones de Docker es sencilla.
  • Amplio soporte comunitario: Ubuntu es ampliamente utilizado en todo el mundo, lo que facilita encontrar información y soluciones en caso de problemas.

Lo que aprenderás en este artículo

En este artículo se explicará paso a paso lo siguiente:
  1. Cómo instalar Docker en Ubuntu
  2. Operaciones básicas con imágenes de Docker
  3. Creación de imágenes personalizadas con Dockerfile
  4. Configuración del entorno en japonés en contenedores Ubuntu
  5. Optimización y reducción del tamaño de imágenes de Docker
  6. Desarrollo de aplicaciones dentro de contenedores Ubuntu
  7. Errores comunes y cómo resolverlos
El contenido está diseñado para ser útil tanto a principiantes como a usuarios avanzados.
侍エンジニア塾

2. Instalar Docker en Ubuntu

Instalación de Docker usando el repositorio oficial

En Ubuntu, se puede instalar Docker fácilmente utilizando el repositorio oficial. Sigue estos pasos para configurarlo.

1. Eliminar paquetes Docker existentes

Ubuntu incluye un paquete llamado docker.io, que puede estar desactualizado. Es recomendable eliminarlo.
sudo apt remove docker docker-engine docker.io containerd runc

2. Instalar los paquetes necesarios

Antes de la instalación, instala las dependencias necesarias.
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

3. Añadir el repositorio oficial de Docker

Agrega la clave GPG de Docker y configura 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

Una vez añadido el repositorio, instala Docker.
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

5. Verificar la instalación

Confirma que Docker se ha instalado correctamente mostrando la versión.
docker --version

Configuración inicial después de la instalación

1. Iniciar y habilitar el servicio Docker

Inicia el servicio y configura Docker para que se ejecute automáticamente al arrancar el sistema.
sudo systemctl start docker
sudo systemctl enable docker

2. Permitir el uso de Docker a usuarios no root

De forma predeterminada, Docker solo puede ejecutarse con permisos de root. Para que un usuario normal lo utilice:
sudo usermod -aG docker $USER
Después, cierra sesión y vuelve a iniciar sesión.

3. Prueba de funcionamiento

Ejecuta el contenedor hello-world con un usuario normal para confirmar que Docker funciona correctamente.
docker run hello-world
Si aparece “Hello from Docker!”, la instalación ha sido exitosa.

3. Operaciones básicas con imágenes de Docker

¿Qué es una imagen de Docker?

Una imagen de Docker es como una plantilla para crear contenedores. Usando una imagen basada en Ubuntu, puedes levantar un entorno en pocos segundos.

Obtener una imagen de Ubuntu desde Docker Hub

Docker Hub ofrece muchas imágenes oficiales. Para obtener la de Ubuntu:
docker pull ubuntu

Iniciar y detener contenedores

Con la imagen descargada puedes iniciar un contenedor.
docker run -it ubuntu bash
Esto abre una shell dentro del contenedor Ubuntu.

Listar contenedores

Para ver los contenedores en ejecución:
docker ps
Para mostrar todos (incluidos los detenidos):
docker ps -a

Detener y eliminar contenedores

Para detener un contenedor en ejecución:
docker stop [ID o nombre del contenedor]
Para eliminar uno innecesario:
docker rm [ID o nombre del contenedor]

Gestión de imágenes Docker

Lista las imágenes descargadas:
docker images
Elimina una imagen innecesaria:
docker rmi [ID de la imagen]

4. Crear imágenes personalizadas con Dockerfile

¿Qué es un Dockerfile?

Un Dockerfile es un archivo de configuración utilizado para crear imágenes de Docker. Siguiendo las instrucciones definidas en el Dockerfile, es posible construir imágenes personalizadas que incluyan paquetes o configuraciones específicas, unificando entornos de desarrollo.

Sintaxis básica de un Dockerfile

En un Dockerfile suelen usarse los siguientes comandos:
ComandoDescripción
FROMDefine la imagen base
RUNEjecuta comandos para construir la imagen
COPYCopia archivos al contenedor
WORKDIREstablece el directorio de trabajo
CMDComando por defecto al iniciar el contenedor
ENTRYPOINTPunto de entrada del contenedor

Creación de una imagen personalizada basada en Ubuntu

1. Crear un directorio de trabajo

mkdir my-ubuntu-image
cd my-ubuntu-image

2. Crear un Dockerfile

# Imagen base oficial de Ubuntu
FROM ubuntu:latest

# Información del mantenedor (opcional)
LABEL maintainer="your-email@example.com"

# Instalar herramientas básicas
RUN apt update && apt install -y curl vim git

# Directorio de trabajo
WORKDIR /workspace

# Comando por defecto
CMD ["bash"]

3. Construir la imagen

docker build -t my-ubuntu-image .

4. Verificar la imagen

docker images

5. Iniciar un contenedor

docker run -it my-ubuntu-image
Este contenedor incluirá herramientas como curl y vim.

5. Configuración del entorno en japonés en contenedores Ubuntu

Configurar locales en japonés

1. Instalar paquetes necesarios

apt update
apt install -y language-pack-ja locales

2. Configurar locales

locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8

3. Aplicar configuración

export LANG=ja_JP.UTF-8

Habilitar entrada en japonés

apt install -y ibus-mozc
Si usas un entorno gráfico, añade:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

Usar aplicaciones gráficas en un contenedor

docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image

6. Optimización y reducción de imágenes Docker

Usar imágenes más ligeras

FROM ubuntu:minimal
O con Alpine Linux:
FROM alpine:latest
RUN apk add --no-cache bash curl

Eliminar archivos innecesarios

RUN apt update && apt install -y curl vim \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

Usar compilación multi-stage

FROM ubuntu as builder
RUN apt update && apt install -y gcc

FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc

7. Desarrollo de aplicaciones en contenedores Ubuntu

Entorno de desarrollo Python

FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]
docker build -t python-dev .
docker run -it python-dev

Entorno de desarrollo Node.js

FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]
docker build -t node-dev .
docker run -it node-dev

8. FAQ y resolución de problemas

Diferencia entre Docker y máquinas virtuales

  • Docker: comparte el kernel del sistema anfitrión, lo que lo hace ligero y rápido.
  • Máquina virtual (VM): incluye un sistema operativo independiente, consume más recursos y arranca más lento.

Persistencia de datos en contenedores Ubuntu

docker run -v my_data:/data ubuntu

Errores comunes y soluciones

1. Error permission denied

Agrega el usuario al grupo docker:
sudo usermod -aG docker $USER
Cierra sesión y vuelve a iniciarla.

2. Error image not found

Especifica una versión al descargar:
docker pull ubuntu:22.04