Redémarrage des serveurs JVM dans des conteneurs

Selon la manière dont vous exécutez vos conteneurs (localement ou via un outil d'orchestration géré), vous devez comprendre comment redémarrer des applications, telles que WebSphere Application Server ou Liberty Server.

Chaque conteneur Docker en cours d'exécution exécute généralement un seul processus d'avant-plan. Lorsque le processus se termine, le conteneur s'arrête. Voici un exemple des processus en cours d'exécution dans Transaction server Docker container
[root@txn /]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  15068  3060 ?        Ss   17:14   0:00 /bin/bash /SETUP/bin/entrypoint.sh
root       173  0.0  0.0  15200  3328 ?        Ss   17:14   0:00 bash
root       214 95.7  6.9 3445684 1146952 ?     Sl   17:15   2:15 /opt/WebSphere/AppServer/java/8.0/bin/java -Dosgi.install.area=/opt/WebSphere/AppServer -Dosgi.configuration.area=/opt/We
root       290  0.0  0.0   7756   740 ?        S    17:15   0:00 tail -F /opt/WebSphere/AppServer/profiles/default/logs/server1/trace.log --pid 214 -n +0
root       430  0.0  0.0  50876  3684 ?        R+   17:18   0:00 ps aux
L'ID de processus pid=1 exécute /SETUP/bin/entrypoint.sh car WebSphere Application Server ne peut pas être un processus d'avant-plan. Dans certains scénarios, après avoir configuré les paramètres ou appliqué des modifications directement dans le conteneur en cours d'exécution, vous devrez peut-être redémarrer WebSphere Application Server qui s'exécute dans Transaction server Docker container ou les serveurs Liberty qui s'exécutent dans les conteneurs Docker de recherche, de magasin et de personnalisation. Pour redémarrer le serveur WebSphere Application Server ou Liberty, vous ne pouvez pas utiliser les scripts traditionnels stop/start. Vous devez redémarrer le conteneur entier. Par exemple,
docker restart <container_name>
Ou, si vous utilisez Docker Composer,
docker-compose restart <service>
Cette approche est valable pour un environnement Docker local dans lequel vos images Docker ne sont pas supprimées de votre système. Vous pouvez redémarrer vos conteneurs et ne pas perdre de données ou de configurations.

Cependant, lorsque vous implémentez des outils d'orchestration Docker avancés (tels que Marathon ou Kubernetes), le conteneur et ses configurations sont perdus lorsque la place d'un conteneur est récupérée (avec vos configurations). Les outils d'orchestration déploient de nouveaux conteneurs à partir de l'image de base. Par conséquent, pour vous assurer ne pas perdre vos configurations ou personnalisations, il est recommandé de générer de nouvelles images de base du Docker pour inclure les changements. Pour plus d'informations, voir Création d'une image Docker personnalisée à partir d'un package déployable.