‫Cette section sera pleine de conférences et de travaux autour des données persistantes.
‫Premièrement, nous allons discuter des problèmes de données persistantes et de la façon dont cela est même devenu
‫un problème en premier lieu.
‫Les concepts clés que vous devez comprendre sont l’idée d’une infrastructure immuable.
‫Et l'idée que les conteneurs sont naturellement éphémères dans leur conception.
‫Nous couvrirons ceux de la première conférence. Nous examinerons ensuite les volumes de données et leur résolution pour
‫résoudre certains de nos problèmes liés aux données persistantes. Ensuite, nous allons également nous intéresser aux montages de liaisons et à la
‫manière dont cela résout différents problèmes liés aux données persistantes. Nous terminerons ensuite cette section avec quelques tâches sur la conservation des données
‫de la base de données, tout en remplaçant les conteneurs pour les bases de données. Et puis, également, lors du montage
‫du code dans un conteneur de l'hôte, de sorte que vous puissiez
‫exécuter ce code à l'intérieur du conteneur en direct. Les conditions requises pour cette première leçon ne comprennent que la façon
‫d’exécuter des conteneurs et les concepts de conteneur et d’image dont nous avons discuté jusqu’à présent.
‫Jusqu'à présent, vous ne vous inquiétez que de la nécessité d'exécuter un conteneur, pas des données uniques susceptibles d'être créées une fois
‫qu'un conteneur est en cours d'exécution.
‫Les conteneurs sont censés être immuables et éphémères.
‫Ce ne sont que des mots à la mode fantaisistes pour invariable et temporaire, ou jetable.
‫L'idée ici est que nous pouvons simplement jeter un conteneur et en créer un nouveau à partir d'une image,
‫non?
‫Ensuite, nous ne parlons pas d’une limitation réelle des conteneurs, mais plutôt d’un objectif de conception ou
‫d’une meilleure pratique.
‫C’est l’idée d’une infrastructure immuable où nous ne changeons pas les choses une fois qu’elles fonctionnent.
‫Si un changement de configuration doit avoir lieu, ou peut-être que la mise à niveau de la version du conteneur doit avoir
‫lieu, nous redéployons un tout nouveau conteneur.
‫Cela nous donne d’énormes avantages en termes de fiabilité et de cohérence, et permet de reproduire les modifications.
‫Mais il y a un compromis.
‫Qu'en est-il des données uniques que votre application va produire? Ces bases de données, ou des magasins de valeurs de clé, ou tout
‫autre élément que votre application crache dans un fichier?
‫Idéalement, les conteneurs ne doivent pas contenir vos données uniques mélangées aux fichiers binaires de l'application. C’est ce que l’on appelle la
‫«séparation des préoccupations» et Docker nous confère ici un grand avantage.
‫Nous pouvons mettre à jour notre application en recréant un nouveau conteneur, avec une version mise à jour de notre application. Idéalement, nos
‫données uniques sont toujours là où elles doivent être et ont été préservées pendant que notre conteneur a été recyclé.
‫Au cas où vous ne l'auriez pas remarqué jusqu'à présent, les conteneurs que nous utilisions étaient persistants par défaut.
‫Toute modification apportée était conservée lors des redémarrages et des redémarrages jusqu'à ce que nous retirions le conteneur.
‫Ce n’est pas parce que nous avons arrêté le conteneur ou redémarré
‫l’hôte que les modifications du fichier du conteneur ont disparu.
‫Ce n'est que lorsque nous retirons le conteneur que sa couche UFS disparaît, mais nous voulons pouvoir le
‫faire à volonté.
‫Ce problème de données uniques est connu dans l'industrie sous le nom de "données persistantes" et, jusqu'à ce que les conteneurs
‫ne soient pas nommés, nous n'avions pas vraiment de nom. Parce que, eh bien, la plupart des choses que nous avons construites
‫étaient persistantes, comme vous le savez, ces anciens serveurs exécutent cette vieille application depuis cinq ou dix ans ou plus.
‫Tout était persistant par défaut.
‫Désormais, dans le nouveau monde des conteneurs et de la mise à l'échelle automatique des applications, les données persistantes créent
‫un problème unique.
‫Docker a deux solutions à ce problème, appelées
‫"volumes de données" et "montages de liaison". "Les volumes Docker sont une option de configuration
‫pour un conteneur qui crée un emplacement spécial en dehors du système de
‫fichiers union de ce conteneur pour stocker des données uniques.
‫Cela le préserve lors des retraits de conteneurs et nous permet de le joindre à n’importe quel conteneur que nous voulons.
‫Et le conteneur le voit simplement comme un chemin de fichier local.
‫Il existe ensuite des montages de liaisons, qui consistent simplement à partager ou à monter un répertoire ou un fichier hôte dans un conteneur.
‫Encore une fois, cela ressemblera simplement à un chemin de fichier local ou à un chemin de répertoire du conteneur.
‫Il ne saura pas réellement que cela vient de l'hôte.