Skip to content
BotServBotServ
DockerMigraciónExportImportVolumes

Migrar contenedores Docker

Traslada contenedores Docker a otro host. Estrategias de export, import, images, volumes y Compose.

S

schutzgeist

3 min read
Migrar contenedores Docker

Migrar contenedores Docker

Qué cubre este artículo sobre migración Docker

  • Cuándo es necesario migrar contenedores.
  • Cómo exportar contenedores e imágenes.
  • Copiar volúmenes.
  • Trasladar entornos Compose.
  • Consejos para una migración sin problemas.

Introducción: migrar contenedores Docker

A veces necesitas trasladar un contenedor Docker a otro host. Esto puede ser necesario durante cambios de hardware, migraciones a la nube o reestructuraciones. Una migración bien hecha incluye la imagen, la configuración y, lo más importante, los datos persistentes. Sin volúmenes y variables de entorno, sueles perder la parte más crítica durante el traslado.

Este artículo te muestra cómo migrar contenedores Docker, imágenes, volúmenes y configuraciones de Compose.

Términos clave

  • Export: Sistema de archivos del contenedor como tar.
  • Import: Convertir tar en imagen.
  • Save/Load: Guardar y cargar imagen como tar.
  • Volume: Datos persistentes del contenedor.
  • Commit: Convertir contenedor en imagen.
  • Registry: Almacenamiento centralizado de imágenes.
  • rsync: Sincronización de archivos.
  • Compose-Override: archivo Compose adicional.

Cuándo migrar

  • Nuevo servidor.
  • Cambio de proveedor en la nube.
  • Restauración desde backup.
  • De entorno de desarrollo a producción.
  • Reemplazo de hardware.

Guardar contenedor como imagen

docker commit mein-container mein-image:backup
docker save -o mein-image.tar mein-image:backup

En el nuevo host:

docker load -i mein-image.tar

Exportar contenedor

docker export mein-container -o mein-container.tar
cat mein-container.tar | docker import - mein-image:importiert

Transferir imágenes

docker save -o images.tar image1:latest image2:latest
docker load -i images.tar

Copiar volúmenes

Extraer y transferir volumen:

docker run --rm -v mein-volume:/data -v $(pwd):/backup alpine \
  tar -czf /backup/mein-volume.tar.gz -C /data .

En el nuevo host:

docker run --rm -v mein-volume:/data -v $(pwd):/backup alpine \
  tar -xzf /backup/mein-volume.tar.gz -C /data

Con rsync

Para volúmenes grandes:

rsync -avz /var/lib/docker/volumes/mein-volume/_data/ \
  benutzer@neuer-host:/var/lib/docker/volumes/mein-volume/_data/

Archivos Compose

  1. Copia todos los archivos Compose.
  2. Copia los archivos .env.
  3. Haz backup de los volúmenes.
  4. Inicia en el nuevo host:
docker compose up -d

Usar una Registry

Envía tus imágenes a una registry:

docker tag mein-image:latest registry.example.com:5000/mein-image:latest
docker push registry.example.com:5000/mein-image:latest

En el nuevo host:

docker pull registry.example.com:5000/mein-image:latest

Lista de verificación

  • Imágenes guardadas o enviadas a registry.
  • Volúmenes comprimidos y copiados.
  • Archivos Compose transferidos.
  • Archivos .env transferidos.
  • Redes y puertos verificados.
  • Secrets y certificados copiados.
  • Contenedores iniciados en el nuevo host.
  • Logs y funcionalidad verificados.

Consejos

  • Es mejor guardar contenedores como imagen que usar export.
  • Siempre haz backup de volúmenes por separado.
  • No modifiques el contenedor después de este paso, antes de hacer commit.
  • Anota los números de versión.
  • Prueba primero en un entorno de prueba.
  • Crea dumps adicionales de bases de datos.
  • Ajusta DNS y dependencias externas.

Errores comunes

  • Volumen olvidado: Los datos faltan después del inicio.
  • Rutas diferentes: Los bind mounts ya no coinciden.
  • .env faltante: El contenedor no inicia.
  • Diferencias de arquitectura: La imagen para amd64 no corre en arm64.
  • Problemas de red: Nueva IP del host o DNS incorrecto.
  • Secrets faltantes: La aplicación no puede autenticarse.

Enlaces y recursos relacionados

FAQ: migrar contenedores Docker

¿Cuál es la forma más simple? Guarda la imagen con docker save y los volúmenes como tar, luego cárgalos en el nuevo host.

¿Debo detener el contenedor? Sí, para garantizar datos consistentes e una imagen limpia.

¿Se pierden los volúmenes con export? Sí, docker export solo guarda el sistema de archivos del contenedor.

¿Puedo copiar volúmenes directamente? Sí, mediante docker run con tar o rsync.

¿Cómo transfiero muchas imágenes? Usa una registry o docker save para guardar varias imágenes en un solo tar.

Fuentes y lecturas complementarias

Resumen: migrar contenedores Docker

La migración de contenedores requiere más que solo mover la imagen. Los volúmenes, variables de entorno, redes y secrets también forman parte del traslado. Las imágenes se pueden transferir con docker save/load o mediante una registry, y los volúmenes se copian usando tar o rsync. Una lista de verificación y una prueba rápida de funcionalidad te ayudan a evitar pérdida de datos y tiempos de inactividad.

Volver al blog
Share:

Entradas relacionadas