OpenShip: migración server-to-server para Docker y SSL
En pocas palabras: En julio de 2026, OpenShip lanzó el comando openship migrate, que automatiza la migración de contenedores Docker, volúmenes, certificados SSL y bases de datos entre servidores Linux vía SSH, sin necesidad de exportar imágenes ni reconfigurar certificados.
OpenShip lanzó en julio de 2026 su herramienta de migración servidor a servidor para entornos con Docker, certificados SSL y bases de datos. La funcionalidad permite mover contenedores, volúmenes, configuraciones de red y bases entre dos máquinas sin necesidad de exportar imágenes manualmente ni reconfigurar certificados en el destino. Según la documentación oficial de OpenShip, el proceso soporta tanto migraciones con downtime mínimo como copias en caliente con verificación de integridad, y ya está disponible en la CLI estable del producto.
Qué es la migración server-to-server de OpenShip. Es un comando de la CLI de OpenShip —openship migrate— que automatiza el traslado completo de un stack de contenedores entre dos servidores Linux. Detecta automáticamente los contenedores Docker en ejecución, sus volúmenes, redes, certificados SSL montados y bases de datos asociadas, los empaqueta, los transfiere por SSH al servidor destino y los reconstruye respetando las mismas configuraciones de origen. No es un simple wrapper de docker save y scp: OpenShip maneja la orquestación del proceso, resuelve conflictos de puertos y verifica que los certificados SSL se transfieran con los permisos correctos.
En 30 segundos
- OpenShip ya permite migrar servidores completos con Docker, SSL y bases de datos usando un solo comando (
openship migrate), disponible en la versión estable de julio 2026. - Soporta MySQL, PostgreSQL y MongoDB sin necesidad de dumps manuales, y transfiere certificados SSL con sus configuraciones de Nginx o Apache.
- Funciona con o sin downtime: el modo por defecto detiene los contenedores en origen, pero hay opciones para sincronización incremental si no podés parar el servicio.
- Los requisitos son mínimos: Docker instalado en ambos extremos, acceso SSH con clave, y conectividad de red entre los dos servidores (internet o red privada).
- No reemplaza un backup: OpenShip migra, no backupea. Si algo sale mal a mitad de camino, necesitás tu propia estrategia de rollback.
OpenShip es una plataforma de orquestación de contenedores que simplifica el despliegue y la migración de aplicaciones Dockerizadas. Su CLI —openship-cli— se instala en cualquier servidor Linux y actúa como agente para ejecutar operaciones de migración, monitoreo y gestión de stacks.
¿Qué incluye la migración server-to-server de OpenShip?
La herramienta migra tres componentes principales en un solo flujo: contenedores Docker con sus volúmenes persistentes, configuraciones SSL activas (incluyendo los archivos .pem y .key que tengas montados), y bases de datos que corran dentro de contenedores. No necesitás hacer un dump de la base por separado ni preocuparte por reemitir certificados en el destino —OpenShip empaqueta todo y lo reconstruye del otro lado con las mismas rutas y permisos. Relacionado: cómo gestionar DNS autoritativos.
Lo interesante es que no asume nada sobre tu stack. Si tenés tres contenedores —ponele Nginx con SSL, una app Node.js y un MySQL— la CLI los detecta, mapea las dependencias entre ellos (el Nginx que apunta al puerto de la app, la app que se conecta a MySQL) y los migra en el orden correcto para que al levantar en el destino las conexiones funcionen sin tocar configuraciones. Según la guía oficial, podés hacer un dry-run antes para ver exactamente qué se va a migrar, cuánto pesa y cuánto tiempo estima que va a tardar.
Requisitos para usar la migración server-to-server
- Docker instalado en origen y destino. Versión 20.10 o superior. OpenShip usa el socket de Docker para inspeccionar contenedores y volúmenes, así que el servicio tiene que estar corriendo.
- Acceso SSH con autenticación por clave. La migración se hace por túnel SSH entre los dos servidores. No se recomienda contraseña porque el proceso es automatizado y no vas a estar para tipearla a mitad de la noche.
- Permisos de superusuario. OpenShip necesita leer volúmenes, certificados SSL en /etc/letsencrypt (si usás Certbot) y manipular redes Docker. Sin sudo, se queda corto.
- Conectividad de red entre ambos servidores. Puede ser por internet o por red privada. Si los servidores están en la misma VPC de Donweb o cualquier proveedor cloud, la migración vuela porque el ancho de banda interno suele ser generoso.
- openship-cli instalado en las dos máquinas. Se baja con un script de instalación oficial que configura el binario y las dependencias en segundos.
Paso a paso para migrar contenedores Docker entre servidores
El flujo es bastante directo, y eso es justamente lo que lo diferencia de una migración manual donde terminás con diez terminales abiertas y un checklist que siempre se olvida de algo (el volumen de la base, las variables de entorno, el bendito certificado SSL).
- Instalá openship-cli en ambos servidores. El script oficial configura el binario, las dependencias y verifica que Docker esté operativo. En el origen vas a ejecutar los comandos de migración, en el destino solo necesitás el agente escuchando.
- Autenticá la conexión SSH. OpenShip usa las claves que ya tengas configuradas. Si podés hacer
ssh usuario@destinosin contraseña, ya estás. - Ejecutá un dry-run. El comando
openship migrate --dry-run(o su variante con bandera--plan) te muestra qué contenedores detecta, qué volúmenes va a transferir, los certificados SSL que encontró y el tamaño total de la migración. Acá es donde decís “fa, mirá todo lo que tengo corriendo”. - Lanzá la migración.
openship migratea secas. El proceso empaqueta contenedores, transfiere volúmenes, recrea redes y levanta todo en el destino. Si algo falla, el log te dice exactamente en qué paso se cortó. - Verificá. Una vez que termina, OpenShip hace un health-check básico de los contenedores en el destino. Igual, no confiés ciegamente: pegale una mirada a los logs y probá los endpoints.
¿Cómo migrar certificados SSL y bases de datos?
OpenShip detecta automáticamente certificados SSL montados en contenedores —tanto los de Let’s Encrypt como certificados comerciales— y los empaqueta junto con el contenedor que los usa. No necesitás regenerar nada en el destino. La herramienta también identifica bases de datos corriendo en contenedores (MySQL, PostgreSQL, MongoDB) y las migra con sus datos intactos, sin requerir que hagas un dump aparte ni que detengas writes manualmente si usás el modo con sincronización.
El mecanismo para bases de datos depende del motor. Con MySQL y PostgreSQL, OpenShip hace un flush de logs y lockea las tablas por un instante mínimo (estamos hablando de segundos) para asegurar consistencia antes de copiar los archivos de datos. Con MongoDB, usa el mecanismo de snapshot del storage engine. Si tus volúmenes siguen las convenciones estándar de Docker —/var/lib/docker/volumes/ o bind mounts explícitos— la detección es automática; si tenés configuraciones muy custom, probablemente necesites ajustar paths en un archivo de configuración. Más contexto en nuestra comparativa de CI/CD.
Errores comunes al migrar servidores con Docker y SSL
Después de ver migraciones de este tipo en producción (y haber sufrido unas cuantas), hay patrones que se repiten. OpenShip resuelve varios, pero no hace magia.
- Permisos incorrectos en volúmenes. Si en el origen los volúmenes son de un usuario específico (uid 1000, por ejemplo) y en el destino ese uid no existe, el contenedor arranca pero la app no puede escribir. OpenShip preserva ownership, pero si los usuarios del sistema no coinciden entre servidores, vas a tener que ajustar después.
- Conflictos de puertos en el servidor destino. Si ya tenés algo corriendo en el puerto 443 o 3306 del destino, la migración va a fallar al intentar levantar los contenedores. El dry-run te avisa de estos conflictos, pero solo si los puertos están ocupados en el momento del chequeo.
- Certificados SSL caducados o a punto de caducar. OpenShip migra los archivos del certificado tal cual están. Si tu certificado vence en tres días, en el destino también va a vencer en tres días. No es un problema de la herramienta, pero la gente lo descubre justo después de migrar y piensa que algo se rompió.
- Bases de datos con writes activos durante la migración. Si elegiste el modo sin downtime y tenés tráfico constante, los datos que entran después del snapshot inicial no se migran automáticamente en la primera pasada.
- No probar el dry-run antes del comando final. Suena obvio, pero la cantidad de gente que ejecuta
openship migratesin el dry-run previo es directamente proporcional a la cantidad de gente que después pregunta en GitHub “¿por qué falló?”.
Ejemplo real de migración server-to-server con OpenShip
Pongamos un caso concreto que cualquiera que haya administrado un VPS reconoce. Tenés un servidor A con tres contenedores: un Nginx con SSL de Let’s Encrypt que hace de reverse proxy, una app Node.js corriendo en el puerto 3000, y un MySQL 8 con un volumen persistente donde está la base de datos de producción. Todo orquestado con Docker Compose, 20 GB de datos entre la base y los assets. Querés migrar al servidor B porque el A se queda corto de RAM y el contrato de hosting está por vencer.
En el servidor A ejecutás:
$ openship migrate --dry-run --destination [email protected] Te puede servir nuestra cobertura de diferencias entre Jenkins y GitHub Actions.
La salida te muestra algo como:
🔍 Analizando servidor origen... ✓ nginx-proxy (nginx:latest) - detectado SSL en /etc/letsencrypt ✓ app-node (node:20-alpine) - puerto 3000 ✓ mysql-db (mysql:8.0) - volumen mysql_data (12.4 GB) ✓ Red: app-network (bridge) 📦 Total a migrar: 14.8 GB ⏱️ Tiempo estimado: 8 minutos (red privada 1 Gbps) ⚠️ Puerto 443 ocupado en destino - conflicto potencial
Corregís el conflicto en el destino (quizás tenés otro Nginx corriendo, lo bajás), y lanzás la migración posta:
$ openship migrate --destination [email protected]
El proceso tarda los 8 minutos estimados —en una red privada de un proveedor como Donweb, la transferencia de volúmenes es rapidísima— y al terminar los tres contenedores están corriendo en B, con el SSL funcionando y la base de datos consistente. Pegás un curl https://tudominio.com desde el destino y te responde la app Node sin errores. Después actualizás el DNS para apuntar al nuevo servidor y listo.
¿Migración server-to-server de OpenShip vs migración manual?
Si alguna vez migraste un servidor a mano —con docker save, scp, docker load, dump de base de datos, rsync de volúmenes y después dos horas debuggeando por qué el certificado SSL no funciona en el destino— ya sabés por dónde viene la diferencia. Acá va la comparación con datos concretos:
| Aspecto | OpenShip | Migración manual (scp/rsync/docker save+dump) |
|---|---|---|
| Tiempo estimado para un stack de 3 contenedores | 8-15 minutos (según documentación oficial y ancho de banda) | 45-90 minutos (entre preparación, transferencia, reconstrucción y debugging) |
| Riesgo de error humano | Bajo. El dry-run detecta conflictos de puertos, volúmenes faltantes y certificados no montados | Alto. Olvidar un volumen, un permiso o una variable de entorno es la norma, no la excepción |
| Posibilidad de downtime | Configurable: con parada (downtime mínimo) o sincronización incremental (near-zero downtime) | Downtime inevitable durante la ventana de corte. Sin opción nativa de sincronización en caliente |
| Migración de SSL | Automática. Detecta certificados montados y los transfiere preservando rutas y permisos | Manual. Hay que ubicar los archivos, copiarlos, revisar que Nginx/Apache los referencie bien y rezar |
| Migración de bases de datos | Integrada. MySQL, PostgreSQL y MongoDB se migran con consistencia asegurada vía flush/lock/snapshot | Dump en origen + restore en destino. Si la base es grande, el dump solo puede tardar más que toda la migración con OpenShip |
| Rollback | No incluido. Necesitás tu propia estrategia (snapshot del VPS, backup previo) | Manual. Si algo sale mal, dependés de lo que hayas backupeado antes de empezar |
| Costo | Incluido en OpenShip (sin costo adicional por la funcionalidad de migración) | Tiempo de un profesional. A USD 40-60/hora, cada migración manual te cuesta entre USD 30 y USD 90 en horas de trabajo |

¿Qué significa para empresas y equipos en Latinoamérica?
En la región, donde muchos equipos manejan sus propios servidores —ya sea en cloud locales, VPS alquilados o infraestructura on-premise— y no siempre hay un DevOps dedicado, una herramienta que reduce la migración de horas a minutos cambia bastante las prioridades. Migrar un servidor deja de ser un proyecto de fin de semana (con el cagazo de que el lunes algo no funcione) y pasa a ser una operación que podés planificar para un martes a las 3 de la tarde. Sobre eso hablamos en implementar hreflang correctamente.
El ahorro de tiempo es real: si una migración manual te lleva 90 minutos y con OpenShip lo hacés en 15, estás recuperando 75 minutos por cada migración. Para una agencia que migra diez proyectos al año, son más de doce horas de trabajo que podés usar en otra cosa. Y eso sin contar el tiempo que no perdés resolviendo errores post-migración —que es donde más se sufre, seamos honestos— cuando el certificado SSL no responde o la base de datos quedó inconsistente porque el dump se hizo mientras seguían entrando writes.
Preguntas Frecuentes
¿Cómo migrar todos mis contenedores Docker de un servidor a otro con OpenShip?
Instalá openship-cli en ambos servidores, verificá que tengas acceso SSH por clave al destino, y ejecutá openship migrate --destination usuario@ip-destino desde el servidor origen. La herramienta detecta todos los contenedores activos, sus volúmenes, redes y certificados SSL, los empaqueta y los transfiere al destino donde los reconstruye automáticamente. Antes del comando final, hacé un dry-run para revisar conflictos.
¿Qué herramienta usar para migrar servidores con SSL y bases de datos sin perder configuración?
OpenShip es la herramienta específica para este caso de uso desde julio 2026. A diferencia de alternativas manuales con rsync y docker save, OpenShip detecta automáticamente los certificados SSL montados en contenedores y los transfiere preservando rutas y permisos, y migra bases de datos MySQL, PostgreSQL y MongoDB con consistencia asegurada sin necesidad de dumps separados.
¿OpenShip permite migración server-to-server sin tiempo caído?
Sí, OpenShip ofrece un modo con sincronización incremental que minimiza el downtime. Por defecto, el comando openship migrate detiene los contenedores en origen para asegurar consistencia total, pero según la documentación oficial podés configurar opciones de near-zero downtime donde se hace un snapshot inicial y luego una sincronización de los cambios posteriores —ideal para bases de datos con tráfico constante que no podés parar.
¿Se puede migrar un servidor completo con Docker, SSL y bases de datos sin ser experto en DevOps?
Sí, y ese es justamente el público al que apunta OpenShip. La CLI abstrae toda la complejidad de dump de bases, transferencia de volúmenes, recreación de redes Docker y reconfiguración de certificados SSL en un solo comando. Dicho esto, necesitás conocimientos básicos de terminal Linux, acceso SSH y entender qué tenés corriendo en tu servidor —no es una herramienta “one-click” para principiantes absolutos, pero está mucho más cerca de eso que del enfoque manual tradicional.
Conclusión
La migración servidor a servidor de OpenShip resuelve un dolor de cabeza clásico para cualquiera que administre stacks Dockerizados. Convertir lo que antes era una operación manual de una hora y media —con checklist, tres terminales y ese momento inevitable de pánico cuando el SSL no responde en el destino— en un comando de quince minutos con dry-run incluido no es poca cosa.
Lo que falta, por ahora, es más info independiente sobre cómo se comporta en entornos realmente grandes (más de veinte contenedores, volúmenes de cientos de gigas, múltiples redes Docker). La documentación oficial cubre los escenarios típicos razonablemente bien, pero los casos borde —que siempre aparecen en producción— van a necesitar que la comunidad los vaya reportando. Si tu stack es estándar, es un golazo. Si tu infraestructura es un Frankenstein con bind mounts por todos lados, redes custom y configuraciones no convencionales, probá el dry-run con tiempo y no asumas que todo va a funcionar de una.
Fuentes
- OpenShip Docs – Guía de migración server-to-server: documentación oficial con requisitos, comandos y opciones de configuración.
- OpenShip Docs – Documentación general: referencia completa de la CLI, instalación y configuración inicial del agente en servidores Linux.






