Docker en Jetson
Volver al Módulo 3 | Volver a la Tabla de Contenidos
13. Instalar Docker y Uso Básico
Introducción
Docker es una plataforma de contenedores ligera que empaqueta una aplicación y todas sus dependencias en contenedores portátiles. Le ayuda a ejecutar el mismo entorno en desarrollo, pruebas y producción con mucha menos deriva de configuración.
Docker mejora la consistencia mediante aislamiento de procesos, inicio rápido y uso eficiente de recursos. Es muy adecuado para desarrollo local, implementación en servidores y pipelines de IA multi-servicio.
Instalar Docker en Jetson
1. Instalar Docker CE
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-commonAgregar clave GPG y repositorio de Docker (el ejemplo a continuación usa el mirror de Aliyun):
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/docker-ce.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] \
https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.ioVerificar la instalación de Docker:
docker --version
Agregar su usuario al grupo docker (reiniciar shell o ejecutar newgrp):
sudo usermod -aG docker "$USER"
newgrp dockerDespués de esto, puede ejecutar comandos Docker sin sudo.
2. Instalar NVIDIA Container Toolkit
distribution=$(. /etc/os-release; echo "$ID$VERSION_ID")
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
Instalar toolkit:
sudo apt update
sudo apt install -y nvidia-container-toolkitHabilitar runtime de GPU para Docker:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerVerificar acceso a GPU dentro de un contenedor:
sudo docker run --rm --runtime=nvidia --gpus all --network host ubuntu nvidia-smiSi existen restricciones de red en su entorno, use un mirror/proxy al descargar imágenes o paquetes.
3. Instalación manual (APT no disponible)
Si Docker CE no se puede instalar desde el repositorio de Ubuntu, descargue los paquetes .deb manualmente desde:
https://download.docker.com/linux/ubuntu/dists/
Elija su versión de Ubuntu:
| Versión de Ubuntu | Código | Carpeta de ejemplo |
|---|---|---|
| Ubuntu 20.04 LTS | focal | dists/focal/pool/stable/ |
| Ubuntu 22.04 LTS | jammy | dists/jammy/pool/stable/ |
| Ubuntu 24.04 LTS | noble | dists/noble/pool/stable/ |
Luego seleccione la carpeta de su arquitectura:
amd64: x86_64 (Servidor / PC)arm64: ARM 64-bit, incluyendo Jetsonarmhf: ARM 32-bits390x: Sistemas IBM z
Descargue los cinco paquetes coincidentes:
containerd.io_<versión>_<arquitectura>.debdocker-ce_<versión>_<arquitectura>.debdocker-ce-cli_<versión>_<arquitectura>.debdocker-buildx-plugin_<versión>_<arquitectura>.debdocker-compose-plugin_<versión>_<arquitectura>.deb
Instálelos desde la carpeta donde descargó los archivos:
sudo dpkg -i ./containerd.io_<versión>_<arquitectura>.deb \
./docker-ce_<versión>_<arquitectura>.deb \
./docker-ce-cli_<versión>_<arquitectura>.deb \
./docker-buildx-plugin_<versión>_<arquitectura>.deb \
./docker-compose-plugin_<versión>_<arquitectura>.debSi faltan dependencias, ejecute:
sudo apt -f installVerificar estado del servicio Docker:
sudo systemctl status dockerSi Docker no está ejecutándose:
sudo systemctl start dockerConceptos Básicos de Docker
Docker Engine proporciona la CLI de Docker (docker), que le permite administrar imágenes, contenedores, redes y almacenamiento desde la línea de comandos.
Antes de aprender comandos comunes, revise estos dos conceptos centrales:
- Imagen: Una plantilla de solo lectura que contiene el SO base, runtime, bibliotecas y código de aplicación necesarios para ejecutar un contenedor.
- Contenedor: Una instancia en ejecución creada a partir de una imagen; tiene su propio proceso y entorno, y puede iniciarse/detenerese independientemente.
En resumen:
Una imagen Docker es como un paquete de instalación, mientras que un contenedor es una instancia de programa en ejecución.
Comandos Comunes
1) Mostrar información de Docker
docker info2) Mostrar versión de Docker
docker --version3) Descargar imagen
docker pull <nombre_imagen>Si no se especifica etiqueta, Docker descarga latest por defecto.
docker pull <nombre_imagen>:<etiqueta>4) Ejecutar imagen
docker run <nombre_imagen>Ejecutar una imagen específica interactivamente:
docker run -it ubuntu:18.04 /bin/bashSalir de un contenedor en ejecución escribiendo exit.
4.1) Listar contenedores en ejecución
docker ps4.2) Listar todos los contenedores
docker ps -a5) Eliminar contenedores detenidos
docker container prune6) Listar imágenes locales
docker images7) Eliminar una imagen
Eliminar solo después de detener y eliminar los contenedores relacionados.
docker rmi <nombre_imagen>8) Guardar un contenedor como nueva imagen
docker commit <id_contenedor> <nombre_nueva_imagen>:<etiqueta>Elija un nombre y etiqueta según la ID real del contenedor.
9) Detener un contenedor
docker stop <id_o_nombre_contenedor>