Généralement, sur un serveur, les mises à jour automatiques des correctifs liés à la sécurité sont configurées. Par conséquent, si j'utilise MySQL 5.5 et qu'un nouveau correctif de sécurité sort, Ubuntu Server appliquera la mise à niveau et redémarrera MySQL pour me protéger de manière automatisée. Évidemment, cela peut être désactivé, mais c'est utile pour ceux d'entre nous qui sont un peu paresseux;)
Un tel concept existe-t-il à l'intérieur d'un conteneur Docker? Si j'exécute MySQL dans un conteneur Docker, dois-je constamment arrêter le conteneur, y ouvrir un shell, puis mettre à jour et mettre à niveau MySQL?
Réponses:
Je ne suis pas d'accord avec la réponse acceptée. Tout d'abord, vous devez concevoir vos conteneurs en tenant compte de la séparation des états (dans le cas MySQL, cela signifie au moins qu'il
/var/lib/mysql
va dans son propre volume ). Deuxièmement, vous devez déterminer une stratégie de mise à niveau; l'état de l'art serait de créer des images versionnées pour chaque ensemble de mise à niveau de packages apt et de les faire tester avant de permuter le volume de données du conteneur en cours d'exécution vers le nouveau. Cela peut inclure un temps d'arrêt ou aucun temps d'arrêt si vous utilisez quelque chose comme hipache .Cette configuration, bien que plus coûteuse à configurer initialement, est la même que celle utilisée par les entreprises à grande échelle de conteneurs et sera moins coûteuse à entretenir au fil du temps.
En outre, les mises à niveau de packages peuvent éventuellement casser vos conteneurs en cours d'exécution, donc les appliquer à des conteneurs en cours d'exécution n'est pas une meilleure pratique - car il ne s'agit pas d'exécuter des logiciels obsolètes.
la source
TL; DR : Si vous ne le construisez pas en vous-même, cela ne se produira pas.
Pour ce faire, il suffit d'écrire simplement un script de démarrage personnalisé pour votre conteneur spécifié par
CMD
dans votreDockerfile
. Dans ce fichier, exécutez unapt-get update && apt-get upgrade -qqy
avant de commencer tout ce que vous exécutez.Vous avez ensuite deux façons de vous assurer que les mises à jour arrivent dans le conteneur:
Ce n'est pas la chose la plus simple à optimiser et à automatiser, mais c'est possible.
la source