Actualización de aplicaciones dentro de contenedores Docker en ejecución

Puede darse que en alguna situaciones tenga que actualizar directamente las aplicaciones que se están ejecutando dentro de contenedores Docker.

Por ejemplo, es posible que desee probar nuevas clases, bibliotecas, o depurar problemas en un entorno de prueba, control de calidad o autoría local antes de decidir realizar los cambios en el entorno de producción. Este procedimiento explica cómo copiar archivos del host de Docker local en los contenedores que están en ejecución.
Nota: Si el entorno está gestionado por herramientas de orquestación Docker (como Marathon), asegúrese de seguir las directrices recomendadas para crear nuevas imágenes de Docker para su despliegue. De lo contrario, los archivos copiados se perderán después de un reinicio debido a la naturaleza de las herramientas de orquestación. Para obtener más información sobre cómo crear nuevas imágenes, consulte Creación de una imagen de Docker personalizada a partir de un paquete desplegable.

Si todavía debe copiar archivos, tenga en cuenta que algunas veces si se sustituyen archivos será necesario reiniciar todo el contenedor Docker para que los cambios entren en vigor. Puede implementar las soluciones técnicas de terceros para reiniciar la JVM dentro del contenedor en lugar de reiniciar el contenedor.

Por qué y cuándo se efectúa esta tarea

Suponiendo que tiene un archivo (.war, .jar, .jsp, .js o .css) que desea cargar en el contenedor que se ejecuta, siga estos pasos para copiar el archivo en el destino.

Procedimiento

  1. Copie el archivo en el contenedor Docker.
    MétodoExplicación
    Al utilizar el mandato 'docker cp'
    docker cp <local_file> <container_name>:<destination_path>
    Por ejemplo, para actualizar el contenedor de transacción (denominado set_app_1) con myupdate.jar, utilice
    docker cp myupdate.jar setup_app_1:/opt/WebSphere/AppServer/profiles/default/installedApps/localhost/ts.ear/lib
    Utilizando un controlador de volúmenes de Docker para montar el archivo local en el contenedor Docker de destino Para más información sobre los controladores de volúmenes, consulte la documentación de Docker, Use a volume driver.
  2. Reinicie.
    • Para las actualizaciones a los contenedores de tienda y búsqueda, reinicie los contenedores. Por ejemplo,
      docker restart store, search
    • Para el servidor de transacciones, puede reiniciar el contenedor de transacciones o reiniciar el EAR de transacciones desde la consola de administración de WebSphere Application Server. Para reiniciar en la consola de administración de WebSphere Application Server:
      1. Inicie la sesión en la consola de administración de WebSphere Application Server https://hostname:9043/ibm/console.
      2. Pulse Servidores > Tipo de servidor > Servidores de aplicaciones de WebSphere.
      3. Seleccione server1 y Pulse Reiniciar.