Mise à jour d'applications dans des conteneurs Docker en cours d'exécution

Vous pouvez rencontrer certains cas où vous devez directement mettre à jour des applications qui s'exécutent dans les conteneurs Docker.

Par exemple, vous pouvez tester de nouvelles classes, bibliothèques ou de nouveaux problèmes de débogage dans un environnement local de test, d'assurance qualité ou de création avant de décider d'apporter les modifications dans votre environnement de production. Cette procédure explique comment copier des fichiers de votre hôte Docker local dans les conteneurs en cours d'exécution.
Remarque : Si votre environnement est géré par les outils d'orchestration Docker (tels que Marathon), veillez à suivre les instructions recommandées pour la génération de nouvelles images Docker à déployer. Faute de quoi, vos fichiers copiés sont perdus après un redémarrage en raison de la nature des outils d'orchestration. Pour plus d'informations sur la génération de nouvelles images, voir Création d'une image Docker personnalisée à partir d'un package déployable.

Si vous devez toujours copier des fichiers, notez que le remplacement de fichiers nécessite parfois de redémarrer l'intégralité du conteneur Docker pour que vos modifications prennent effet. Vous pouvez implémenter des solutions techniques tierces pour redémarrer la machine virtuelle Java à l'intérieur du conteneur au lieu de redémarrer le conteneur.

Pourquoi et quand exécuter cette tâche

En supposant que vous disposez d'un fichier (.war, .jar, .jsp, .js, .css) que vous souhaitez charger dans votre conteneur en cours d'exécution, procédez comme suit pour copier le fichier vers la destination.

Procédure

  1. Copiez votre fichier dans le conteneur Docker.
    MéthodeExplication
    En utilisant la commande 'docker cp'
    docker cp <local_file> <container_name>:<destination_path>
    Par exemple, pour mettre à jour le conteneur de transactions (nommé set_app_1) avec myupdate.jar, utilisez
    docker cp myupdate.jar setup_app_1:/opt/WebSphere/AppServer/profiles/default/installedApps/localhost/ts.ear/lib
    En utilisant un pilote de volume Docker pour monter le fichier local dans le conteneur Docker cible Pour plus d'informations sur les pilotes de volume, voir la documentation de Docker, Use a volume driver.
  2. Redémarrez.
    • Pour mettrez à jour les conteneurs de magasin et de recherche, redémarrez les conteneurs. Par exemple,
      docker restart store, search
    • Pour le serveur de transactions, vous pouvez redémarrer le conteneur de transactions ou redémarrer le fichier EAR de transaction à partir de la console d'administration de WebSphere Application Server. Pour redémarrer le fichier dans la console d'administration WebSphere Application Server :
      1. Connectez-vous à la console d'administration WebSphere Application Server https://hostname:9043/ibm/console.
      2. Cliquez sur Serveurs > Types de serveurs > Serveurs d'applications WebSphere.
      3. Sélectionnez server1 et cliquez sur Redémarrer.