Introducción
Marsh House va a entregar A river remembered, River edition 2, a un Engine receptor aislado del registro. Ya existe un paquete de entrega, pero solo guarda la imagen web. Repáralo, carga ambas imágenes en el receptor y usa la exposición completa después de detener su origen.
Este laboratorio independiente prepara su propio origen, archivos y receptor; no necesita nada de la VM anterior. Debes haber aprendido a reunir paquetes, las relaciones Compose proporcionadas y las diferencias entre etiquetas e ID de imágenes en Pack the Exhibition, o tener conocimientos equivalentes. Docker y Compose están listos. Aprenderás a usar contextos explícitos, a cargar en el receptor y a iniciar sin conexión.
Usa Workstation, Source Exhibition y Receiving Exhibition. Los dos Engines tienen sockets, procesos containerd y almacenamiento de imágenes distintos, pero comparten el kernel de esta VM; se trata de un límite de recepción controlado, no de dos máquinas físicas ni de una garantía de recuperación completa ante desastres. Calcula unos 45 minutos, incluidos la lectura y los errores habituales; es una estimación del autor.
Inspecciona el límite de recepción
En este paso, distinguirás los dos Engines antes de cambiar alguno. Empieza en Source Exhibition. Abre Pocket compass y Crossing ledger, lee sus registros y descarga sus fichas. Observa River edition 2 en la página de la colección. Receiving Exhibition indica actualmente Exhibition not running, con HTTP 503: no toma prestada la página del origen.
Cambia a Workstation, que comienza en /home/labex/project/exhibition-handoff:
cd /home/labex/project/exhibition-handoff
cat release.json
Las etiquetas requeridas son field-notes/web:receive y field-notes/api:receive. El packet preparado tiene la colección y el archivo Compose con rutas relativas, pero solo una imagen en images.tar.
Un contexto Docker da nombre a una conexión a un daemon. El siguiente context create registra una conexión al socket Unix del receptor; no crea un Engine nuevo ni cambia el contexto predeterminado activo. unix:// es el protocolo de socket local y el resto de la ruta pertenece únicamente al receptor aislado de este curso:
docker context create receiver --docker host=unix:///opt/labex/dk03/receiver-socket/docker.sock
Si el nombre ya existe por tu intento anterior, inspecciónalo con docker context inspect receiver en lugar de cambiar el contexto global o crear otro receptor. Usa --context en cada operación para dejar claro su destino.
docker --context default info --format '{{.ID}}'
docker --context receiver info --format '{{.ID}}'
docker --context receiver image ls
Los ID de los Engines son distintos. El receptor tiene una imagen base de Python usada por su servicio de referencia ajeno a la exposición receiving-desk, pero ninguna de las etiquetas de exposición requeridas. Conserva intactos ese servicio y el propio Engine receptor.
El Engine receptor está dentro del contenedor del curso dk03-receiver. Los dos comandos siguientes, de solo lectura, ejecutan herramientas dentro de ese contenedor mediante el Engine de origen. ip route muestra rutas conectadas sin ruta predeterminada. wget intenta una solicitud real al registro; -T 5 limita la espera de red, y -O /dev/null descarta cualquier cuerpo de respuesta. Se espera que este intento falle con un estado distinto de cero porque este espacio de nombres receptor no tiene ruta al registro:
docker --context default exec dk03-receiver ip route
docker --context default exec dk03-receiver wget -T 5 -O /dev/null https://registry-1.docker.io/v2/
Lee el error de conexión. Un fallo de conexión de red es distinto de un HTTP 404 o 503 de la aplicación. No añadas una ruta, habilites el acceso al registro ni montes el socket Docker de origen para evitarlo: el paquete debe completar la entrega.
Repara, copia y carga el paquete
En este paso, llevarás las dos imágenes requeridas y la colección local a la carpeta receptora. Empieza en Workstation. El laboratorio anterior del paquete enseñó image save, cp y las rutas Compose relativas. Sustituye el archivo incompleto por la pareja exacta indicada en el registro de versión de este laboratorio:
docker --context default image save -o packet/images.tar field-notes/web:receive field-notes/api:receive
cat packet/compose.yaml
Confirma que el montaje sea ./collection:/collection:ro y que las etiquetas de los servicios terminen en :receive. Su ruta relativa se resolverá junto a la configuración recibida. Copia el paquete completo, no solo su archivo de imágenes:
cp -r packet /home/labex/project/receiving/packet
ls /home/labex/project/receiving/packet
En el primer intento, ese destino no existe. Si repites tu propia copia, copia el contenido con cp -r packet/. /home/labex/project/receiving/packet/ en lugar de anidar otro directorio packet. El directorio superior receptor también contiene desk/, que pertenece al servicio de referencia que debes conservar. No lo elimines ni lo sobrescribas.
image load -i importa las configuraciones, capas y etiquetas de imágenes desde un archivo guardado al Engine seleccionado:
docker --context receiver image load -i /home/labex/project/receiving/packet/images.tar
docker --context receiver image ls
Ahora deben aparecer ambas etiquetas requeridas. Este receptor no compartía el almacén de imágenes del Engine de origen; guardar una etiqueta solo en el origen no podía hacerla disponible aquí. Si solo aparece una etiqueta, vuelve a release.json, repara el archivo guardado del paquete de origen y vuelve a copiar su contenido antes de cargar otra vez.
Abre el receptor sin su origen
En este paso, iniciarás solo desde los archivos del receptor y demostrarás su independencia. Empieza en Workstation. --project-directory establece dónde resuelve Compose sus archivos relativos, -p exhibition nombra únicamente los recursos de aplicación de este curso, up -d los inicia en segundo plano, --pull never prohíbe descargar del registro y --no-build prohíbe construir las imágenes que falten:
docker --context receiver compose --project-directory /home/labex/project/receiving/packet -p exhibition up -d --pull never --no-build
docker --context receiver compose --project-directory /home/labex/project/receiving/packet -p exhibition ps
Deben ejecutarse tanto gallery como records. Si Compose indica que falta una imagen, repara y carga el paquete en lugar de descargarla. Si la página indica Collection unavailable, inspecciona los registros del servicio de registros con el mismo prefijo Compose seguido de logs records, compara la carpeta de colección receptora y su montaje :ro y después corrige el paquete y vuelve a copiarlo. Si necesitas sustituir un intento parcial anterior, usa ese mismo prefijo seguido de down y repite el comando de inicio mostrado. Esto elimina únicamente los contenedores de la aplicación, no el mostrador receptor ni su Engine.
Cambia a Receiving Exhibition, recarga y usa los cuatro objetos, sus ilustraciones, detalles y descargas de fichas. Este es el servicio receptor, no una copia de la página de origen.
Cambia a Workstation. docker stop solicita detener un contenedor nombrado. Detén solo estos dos servicios de origen y mantén en ejecución el Engine receptor y receiving-desk:
docker --context default stop dk03-source-web dk03-source-api
Cambia a Source Exhibition y recarga: ahora debe indicar Exhibition not running. Cambia a Receiving Exhibition, recarga, abre Pocket compass y Crossing ledger y descarga otra vez sus fichas. El receptor debe conservar la edición correcta, los cuatro objetos, todas las ilustraciones y las descargas completas. Su lector no recurre al origen como alternativa. También debe funcionar una sesión nueva del navegador sin páginas previamente almacenadas en caché.
Esta es la colección recibida River edition 2, todavía disponible después de detener el origen:

Deja la aplicación recibida en ejecución. Las comprobaciones observan y conservan este estado real; una reproducción aislada adicional carga tu paquete sin modificar en un almacén nuevo sin red para verificar que la entrega sea repetible. Ninguna comprobación completa por ti los archivos o imágenes reales que falten.
Resumen
Usaste contextos explícitos para dirigirte a Engines Docker independientes, reparaste un paquete de dos imágenes y lo cargaste en el receptor aislado del registro. Compose se inició con la configuración y los materiales del receptor, con las descargas y la construcción desactivadas. La exposición completa siguió funcionando después de detener ambos servicios de origen.



