‫Dans cette conférence, nous allons parler de montage de liaison et de données persistantes dans ces montages. Les exigences sont vraiment que vous sachiez simplement sur
‫la gestion des conteneurs et sur la façon de les exécuter.
‫Sautons dans. Parlons de fixations. Ils sont en fait assez cool.
‫Quand j’en ai entendu parler pour la première fois, cela m’a donné une idée de la façon dont je pouvais utiliser Docker facilement pour le
‫développement local.
‫En réalité, un montage lié est simplement un mappage des fichiers hôtes, ou répertoires, dans un fichier conteneur ou
‫un répertoire. Vous pouvez faire juste cela.
‫Vous pouvez spécifier un répertoire ou un seul fichier. En arrière-plan, il suffit
‫simplement que les deux emplacements désignent les mêmes emplacements physiques sur le disque.
‫Encore une fois, cela ignore réellement le système de fichiers UFS, comme le font les autres volumes, de sorte qu'il ne
‫supprime pas votre emplacement hôte lorsque vous supprimez le conteneur.
‫S'il existe des fichiers dans le conteneur auxquels vous mappez les fichiers hôte, ceux-ci sont gagnants. En fait, il ne supprime pas les
‫fichiers dans le conteneur qu'il a écrasé, car il n'écrase rien dans
‫le conteneur.
‫C'est juste là tant que le montage lié existe.
‫Dès que vous n'avez plus besoin de la liaison de montage et que vous réexécutez le conteneur sans
‫celui-ci, vous voyez en fait les données sous-jacentes qui s'y trouvaient auparavant. Étant donné que les montages de liaison sont généralement spécifiques
‫à l'hôte, ils ont besoin de données spécifiques sur le disque dur de l'hôte pour fonctionner.
‫Vous ne pouvez pas les spécifier dans un fichier Docker.
‫Vous devez les utiliser au moment de l'exécution lorsque vous utilisez la commande d'exécution du conteneur docker. Vous pouvez voir le format
‫ici.
‫C'est vraiment le -v que nous utilisions auparavant, uniquement du côté gauche du côlon,
‫nous mettons en place un chemin complet plutôt qu'un simple nom.
‫Et la manière dont Docker peut réellement faire la différence entre le volume nommé, comme nous le faisions il
‫y a quelque temps, et le montage de liaison, est que le montage de liaison commence par une barre oblique.
‫Sous Windows, vous remarquerez qu'il s'agit de deux barres obliques, d'une lettre de lecteur, puis de
‫votre chemin.
‫Tant que vous avez le côlon gauche et le côté droit, vous pouvez réellement mapper tout ce que vous voulez de
‫l'hôte dans le conteneur, et vous pouvez également spécifier des éléments tels que la lecture seule.
‫Le développement et l'exécution de services dans votre conteneur qui accèdent aux fichiers que vous
‫utilisez sur votre hôte ou que vous modifiez sont particulièrement intéressants.
‫Faisons-le avec Nginx.
‫Si vous allez à la racine de notre référentiel pour ce cours, nous irons ensuite dans le répertoire Dockerfile
‫sample 2. Maintenant nous étions ici plus tôt.
‫Si vous vous en souvenez, il y a deux fichiers. Ceci est pour Nginx, non?
‫Si nous examinons très rapidement le fichier Dockerfile, c'est assez simple. Il suffit de spécifier un répertoire de travail, puis de copier
‫un fichier d'index dans ce répertoire.
‫Il n'y a pas de volumes ici.
‫Un montage de liaison ne nécessite pas de volume pour fonctionner, bien que l'on puisse certainement être là.
‫L'hôte gagne toujours, tu te souviens? Donc, quand on fait un conteneur docker, on
‫fait un -d ... nommons-le nginx.
‫Donnons le port 8080 comme avant.
‫Ensuite, nous allons lui donner le volume cette fois-ci. Et je dois lui dire que mon répertoire de travail actuel va
‫être monté dans ce répertoire de travail dans le conteneur. Parce que mon fichier d'index est ici dans ce dossier,
‫je veux qu'il
‫soit dans le conteneur afin que je puisse le modifier ici, et il est vu en direct dans le conteneur.
‫Cela aura donc un sens dans une seconde.
‫Voici un petit conseil rapide. Au lieu de devoir calculer
‫tout mon chemin et taper le tout, vous pouvez utiliser pwd ici comme ça.
‫Ce qui est un raccourci shell qui dit, 'affiche le répertoire de travail et remplace cette commande par ce chemin.
‫'Ensuite, nous allons simplement utiliser le même répertoire de travail du fichier Dockerfile, puis nous
‫allons spécifier l'image Nginx.
‫Ce que je vais faire très rapidement, c’est que je vais en fait ouvrir une autre fenêtre de terminal afin que nous puissions
‫faire deux choses à la fois.
‫Vous n'avez pas vraiment besoin de faire ça.
‫Fondamentalement, nous allons simplement éditer le fichier sur notre hôte, puis je vais être dans le conteneur et voir ce
‫qui se passe.
‫Donc, juste pour être sûr que
‫ça marche, allons chez localhost.
‫OK, ce n'est donc pas le fichier HTML par défaut de Nginx.
‫Et nous avons utilisé l'image normale de Nginx.
‫Nous n'avons pas réellement utilisé le fichier personnalisé de ce répertoire.
‫Nous venons d'utiliser une image de stock. Pour prouver ce point, nous pouvons en fait faire la
‫même chose, commande exacte à nouveau, mais retirez -v et je l’exécuterai sur le port 8080 à la place. Et j'appellerai celui-ci nginx2.
‫Si je vais sur mon navigateur et que je vais sur localhost 8080, c'est l'index nginx par défaut. fichier html.
‫Celui-ci est le personnalisé que nous avons vivant dans ce répertoire.
‫Donc, nous pouvons déjà voir qu'il l'a correctement cartographié.
‫Si j'ouvre un autre onglet ici et obtenir une ligne de commande dans le conteneur.
‫Ensuite, allez dans ce répertoire.
‫Vous remarquerez que nous pouvons réellement voir le fichier Docker parce que nous cartographions tout le répertoire.
‫Si à gauche, si nous avons créé un nouveau fichier et que je peux simplement utiliser cette commande tactile Linux ici pour
‫créer un nouveau fichier. Puis à droite ... Oops... continue juste à oublier que ... ls -al, et vous le verrez
‫dans votre fichier.
‫Espérons que vous comprenez ce qui se passe ici, que ces deux endroits sont les mêmes.
‫Et si j'ai répercuté quelque chose dans ce fichier testme,
‫puis ...
‫Voilà.
‫Notre nginx est capable de voir les modifications car il s’agit d’un chemin de fichier normal dans le conteneur
‫et que ces fichiers se trouvent sur l’hôte.
‫Si je devais les supprimer dans le conteneur, ils seraient supprimés sur l'hôte car il s'agit du
‫même fichier.
‫C'est à ce moment-là que j'ai l'habitude de demander à un développeur de penser à tous ses
‫environnements de développement qui sont cette configuration compliquée. Ils utilisent peut-être Vagrant, ou une autre méthode
‫manuelle pour configurer leur environnement parfait, et ils peuvent commencer à comprendre comment cela pourrait rendre cela beaucoup plus simple.
‫Comme je n'avais pas à effectuer de configuration compliquée sur mon Mac, j'ai simplement exécuté un conteneur.
‫J'ai utilisé la commande -v avec le montage, et maintenant mon code, sur mon hôte, peut être modifié sur mon hôte.
‫Et je n'ai jamais vraiment besoin d'entrer dans la coque du conteneur.
‫En général, vous pouvez simplement exécuter le conteneur et consulter ses journaux pour voir s’il ya des erreurs pendant
‫le codage.
‫Bien entendu, ceci est un exemple simple avec Nginx. Plus tard, nous aurons en fait des
‫exemples spécifiques de différents environnements de développement pour le développement local et les conteneurs.