Vous êtes sur la page 1sur 8

Jetons un coup d'œil au chapitre 3, gestion des conteneurs.

il n'y a pratiquement rien dans cette première section, dont nous n'avons pas déjà parlé un peu.
Alors reprenons cela et voyons si nous pouvons cimenter cela dans nos esprits.

Donc première section ici, gérer le cycle de vie des conteneurs. Les conteneurs arrivent, les conteneurs partent. Ce n'est fondamentalement pas un
processus différent. Démarre, fait son travail, remonte. Il a certains états dans lesquels il peut être. Et les conteneurs ne sont que des processus qui sont
traités spécialement. Donc beaucoup de cela va se chevaucher avec beaucoup de cela.

En fait, vous remarquerez que la plupart des commandes que nous utilisons pour traiter les conteneurs sont les mêmes types de commandes que nous
traiterions. Processus réguliers, run, stop, restart, pause, des choses comme ça. Dans le tableau suivant, nous allons voir des choses comme top et ps,
toutes ces choses, même la commande kill, des choses que vous feriez normalement à un processus. Il existe une version podman de cela pour le faire
aussi.

Alors allons-y et jetons un coup d'œil à ce tableau ici. Ce sont toutes des sous-commandes de la commande podman et pour la plupart aussi Docker, c'est
pareil. Beaucoup de choses sont les mêmes. Les éléments de ce côté de la page concernent la gestion des images. Alors podman, save et load pour
enregistrer et charger une image, push et pull pour charger et télécharger une image. rmi pour supprimer une image. Nous avons vu podman rm pour
supprimer un conteneur, rmi pour supprimer une image. Donc, des trucs ici pour l'image.

Les choses de l'autre côté ici sont les états du conteneur, restart, stop-start, stop, remove, exec. Toutes ces choses ont à voir avec l'exécution de
conteneurs. La commande run est la façon dont vous passez d'une image à un conteneur en cours d'exécution. Donc, beaucoup de bonnes choses,
beaucoup de choses faciles, beaucoup de choses que vous devineriez probablement. podman stop, podman start, podman remove, pour faire des choses
comme ça. Pub and commit est un moyen, c'est le moyen rapide de créer une nouvelle image. Vous pouvez exécuter votre conteneur, y apporter les
modifications que vous souhaitez, puis valider. Et c'est une nouvelle image sur votre machine, que vous pouvez ensuite renommer et peut-être mettre dans
un registre.

Maintenant, il est possible de retirer un conteneur sans s'y arrêter, mais vous ne devriez pas le faire. Vous devez arrêter un conteneur, puis le retirer. Si
vous essayez de supprimer un conteneur qui est toujours en cours, cela vous donnera un avertissement. Mais vous pouvez mettre un -f dessus pour forcer
le problème. Mais ne le faites pas. Si vous devez faire cela, s'il y a une raison pour que vous le fassiez, vous avez des ennuis de toute façon. C'est la même
chose avec la suppression d'une image.

Si un conteneur est toujours en cours d'exécution à partir d'une image, la commande podman rmi ne fonctionnera pas. Vous pouvez mettre un -f pour la
force, mais ne le faites pas.

Jetons un coup d'œil à ce prochain ici. Encore une fois, les éléments de gestion d'image à gauche, les éléments de conteneur à droite. Alors maintenant
nous pouvons voir que podman images sont celles que nous utilisons pour répertorier les images que nous avons podman search chercher dans les registres
externes podman inspect nous donnera des informations sur un conteneur en cours d'exécution ou sur l'image de conteneur locale peut frapper qui est
stockée. podman top, podman ps, choses pour obtenir des informations sur les conteneurs en cours d'exécution. ps - a vous montrera non seulement les
conteneurs en cours d'exécution. podman ps affiche uniquement les conteneurs en cours d'exécution, mais ps -a affiche également le conteneur arrêté.

Donc, si vous essayez de refaire un conteneur, corrigez un truc, la faute de frappe et ça dit, oh ! vous avez déjà ce conteneur en cours d'exécution et vous
faites podman ps. Non, je ne sais pas. Ce n'est pas là podman ps -a. Afin de tous les montrer, même ceux qui ont cessé de créer des conteneurs. Nous avons
déjà vu cela.

Jetons-y un coup d'œil à nouveau. Nous avons notre commande podman, bien sûr. Et nous disons podman run. podman run va prendre le nom d'une
image, qu'il s'agisse d'une image locale que vous avez déjà téléchargée ou d'une image qui doit encore être téléchargée, extraite. Donc dans ce cas, ce
n'était pas déjà là, alors il l'a immédiatement retiré. Si c'est dans le cache local, il l'exécute simplement. Sinon, il le tire. Maintenant, après avoir fait cela,
c'est dans le cache local.

Maintenant, lorsque vous exécutez quelque chose, lorsque vous exécutez une image, lorsque vous exécutez un conteneur à partir d'une image, il a un
thread de point d'entrée préprogrammé, quelque chose qu'il va démarrer. Dans ce cas, il suffit de regarder le nom de celui-ci. La chose la plus probable est
qu'il va exécuter Apache, il va exécuter httpd.2.4. Et donc à moins que vous ne lui fassiez quelque chose de spécial. C'est le programme qui va fonctionner. Il
y a un pré-programme qui va s'exécuter et démarrer. Maintenant, ils n'ont pas donné de contexte, ils n'ont pas donné de -d ou quoi que ce soit. Donc, dans
ce cas, vous allez réellement voir la sortie d'Apache sur votre écran. Et c'est ce que fait ce genre de choses. C'est bizarre à regarder. Donc, normalement,
nous voudrions exécuter un -d pour le mode détaché en arrière-plan. Mais une fois que nous l'avons fait fonctionner, podman ps nous montrera ceux qui
fonctionnent.

Puisque celui-ci est attaché au terminal, cela devrait être fait dans un autre terminal. Et nous ne lui avons pas non plus donné de nom. Souvenez-vous, je
vous l'ai dit dans une autre section si vous avez déjà vu celle-là. Si vous ne lui donnez pas de nom, si vous ne dites pas --name et ne lui donnez pas de nom, il
choisira son propre nom. Et ce serait bizarre. Ceci est un exemple de l'un des moins étranges qu'il pourrait lui donner focus_fermat, ils peuvent devenir plus
étranges, mais donnez-lui un nom de votre choix et vous n'aurez plus à vous en occuper. Ou peut-être que vous le souhaitez, c'est à vous de décider.

Donc, ici, nous l'avons fait à nouveau, podman run. Cette fois, ils lui ont donné un nom, mon conteneur httpd. Et puis ils lui ont également donné le nom de
l'image à partir de laquelle ils veulent générer le conteneur. Jusqu'ici tout va bien, ça va toujours nous donner la sortie d'Apache. Et donc c'est quelque
chose que nous allons traiter dans une seconde. Mais au moins cette fois, il ne choisira pas son propre nom et vous saurez ce que c'est. Et si vous l'êtes, le
nom doit être unique. Donc, si vous corrigez une erreur, si vous avez déjà essayé de l'exécuter, cela s'est arrêté. Et vous l'exécutez à nouveau et il est dit, oh
! vous en avez déjà un de ce nom, allez jeter un oeil à podman ps -a pour jeter un oeil et voir puis supprimez le si vous le pouvez.
Très bien! Alors maintenant, ils ont appris leur leçon et ils l'exécutent à nouveau, podman run, nous lui donnons un nom, myhttpd container. Nous devons
donc non seulement arrêter le précédent, mais également le supprimer. rm. Alors appris leur leçon et ils l'exécutent à nouveau, podman run, nous lui
donnons un nom, myhttpd container –d , ça ne va pas nous donner la sortie, ça va juste nous donner une signature et ensuite nous rendre notre invite à ce
moment-là. Et puis ils lui ont dit quelle image ils allaient en tirer. Nous obtenons donc une signature. Nous connaissons le nom de la chose que nous venons
d'exécuter. C'est bon d'y aller. Vous pouvez le vérifier avec podman ps pour voir s'il fonctionne. Mais ouais! le -d dit qu'il va maintenant fonctionner en
arrière-plan. C'est comme cela devrait être.

Alors à moins que vous ne fassiez quelque chose d'écureuil, ça va fonctionner, peu importe ce qui est programmé. Les préprogrammés sont exécutés. Et
dans ce cas, nous examinons ce HTTPD 2.4. Il va probablement exécuter Apache 2.4. Eh bien, ils font quelque chose d'écureuil maintenant. Cette fois, ils ont
dit ls /tmp.

Maintenant, si vous allez remplacer l'exécutable, deux ou trois choses. Tout d'abord, il faut que ce soit quelque chose qui s'y trouve. Tout n'est pas dedans.
Le programme que vous enregistrez pour qu'il s'exécute doit exister à l'intérieur du conteneur. De plus, cela doit être tout au bout de la ligne. Si vous
mettez ceci n'importe où ailleurs, il ne se rendra pas compte que vous voulez que ce soit le remplacement du fil d'entrée. Donc, la dernière chose sur votre
ligne de podman doit être le programme que vous allez exécuter. Et qu'ont-ils donc fait ici ? List, temp, il l'a fait, il a exécuté le programme ls. Nous a donné
une liste du seul fichier apparemment là-dedans, puis il aurait abandonné et arrêté le processus.

Nous avons donc maintenant un conteneur arrêté qui doit être retiré. Voici un autre cas où ils changent le programme qui va être exécuté. Donc, au lieu
d'Apache, ils utilisent bash cette fois. Mais bash est quelque chose qui ne va pas simplement courir puis abandonner. Bash est quelque chose que vous
voulez pouvoir faire pour l'utiliser de manière interactive. Donc, pour exécuter quelque chose de manière interactive, nous lui donnons le -it. Et maintenant,
vous travaillez sur une invite de manière interactive à l'intérieur du conteneur, en exécutant des commandes dans un conteneur. Maintenant, cela
démarrait un conteneur avec une commande spéciale. C'est un peu la même chose. Nous avons donc la commande podman exec à utiliser ici.

Maintenant, podman exécute n'importe laquelle de ces choses, le nom du conteneur et la signature du conteneur sont toujours interchangeables. Ainsi,
vous pouvez toujours faire celui que vous voulez. Le -l signifie le plus récent. Ainsi, celui dont vous venez de parler dans la commande précédente va
simplement répéter cela si vous faites un -l. La plupart des commandes prendront cela.

D'accord! Donc, le podman exec maintenant, c'est différent de run. Au lieu de démarrer un conteneur avec un nouveau programme, le conteneur est déjà
démarré. Il exécute n'importe quel programme qu'il était censé exécuter ou n'importe quel programme que vous avez écrasé, remplacé avec. Mais dans ce
cas, nous allons exécuter un autre thread à l'intérieur du conteneur. Nous entrons juste dans cet espace de noms et nous allons terminer et nous allons
exécuter, dans ce cas, cat /ETC/hostname. Très bien! Et ça fait ça.
Maintenant, cela va se terminer et sortir et le conteneur est toujours en cours d'exécution car ce n'est pas le thread, ce n'est pas le processus qui maintient
le conteneur ouvert. Le processus principal en cours d'exécution, ce point d'entrée est la chose qui est en fait le conteneur. Ce n'est qu'un sous-processus
de cela. Ainsi, vous pouvez entrer, vous pouvez sortir. -ça marche aussi ici si vous allez lancer bash, mais souvenez-vous encore, ça ne va pas rester ouvert
indéfiniment. Peut-être que quelque chose se passe et que le programme que vous exécutez dans ce conteneur se bloque, peut-être qu'il se termine
normalement. Quoi qu'il en soit, vous pensez que vous êtes toujours là en train de faire quelque chose et tout d'un coup, cela disparaît et vous récupérez
votre invite locale, c'est parce que vous allez par la porte dérobée cette fois.

Vous n'êtes pas le numéro d'identification de processus 1 dans ce conteneur, vous entrez juste par la porte latérale. Donc, podman run remplace une
commande ou podman exec, exécute une commande dans un conteneur déjà en cours d'exécution.

D'accord! jetons un coup d'œil à la gestion des conteneurs. Donc, la commande podman ps, nous l'avons vu plusieurs fois maintenant. Il va lister, tout
comme la commande ps va lister les processus, podman ps va lister les conteneurs sans aucune option. Il ne répertoriera que les conteneurs qui sont déjà
en cours d'exécution en ce moment. Si vous ne l'avez pas en cours d'exécution, si vous souhaitez également répertorier les conteneurs arrêtés, nous devons
faire le ps -a.

Maintenant, il y a un tas de champs ici, une image de conteneur ou une commande d'image d'ID de conteneur, quand il a été créé, le statut, les noms de
ports. Peu importe la largeur de votre terminal, il va le battre. Il y a beaucoup de choses que vous devrez rendre très large et la police vraiment petite pour
finalement l'empêcher de s'envelopper, il est possible de choisir exactement ce que vous voulez. Mais à moins que vous ne scénarisez cela, c'est beaucoup
à taper, il peut être, vous savez, de le parcourir et de le sélectionner, avec des yeux humains, c'est facile à faire. Et donc, personnellement, je préfère
simplement laisser tomber et je peux toujours entrer et choisir les informations que je veux.

Mais si je le scripte pour une sortie particulière à enregistrer ou quelque chose comme ça, il est possible de lui dire exactement quels champs vous voulez et
d'ignorer le reste. Il peut bien le formater. Si vous avez un conteneur en cours d'exécution, vous pouvez arrêter ce conteneur. Si vous avez un conteneur
arrêté, tant qu'il s'est arrêté correctement, vous pouvez redémarrer le conteneur. Vous pouvez faire un redémarrage sur le conteneur. N'oubliez pas que
vous envoyez ces deux éléments, pas le conteneur, mais le processus en cours d'exécution. Ce sont les conteneurs, je suppose que ce sont les deux. Mais tu
sais ce que je dis ? Nous avons également une commande podman kill. Cela fonctionne exactement comme la commande Unix kill, qui si vous m'avez déjà
entendu parler de la commande kill, je pense que c'est un nom terrible pour cette commande particulière. Parce que ce n'est pas seulement utilisé pour
tuer. Kill n'est qu'un des signaux possibles que vous pouvez utiliser.

Mais la commande kill est utilisée pour envoyer un signal à un processus. La commande podman kill est utilisée pour envoyer un signal à un conteneur. Kill
n'est même pas le signal par défaut qui peut être envoyé. Si vous ne le spécifiez pas, il enverra le signal de terminaison. Le signal de fin revient à cliquer sur
le X dans le coin d'une fenêtre. Il demande au programme de s'arrêter, s'il vous plaît. Il pourrait être bloqué ou manipulé, vous savez, ne voulez-vous pas
d'abord enregistrer votre travail ou il y a énormément d'onglets que vous avez ouverts. Dommage si quelque chose devait arriver, toutes ces remarques ou
n'importe quoi d'autre que cela pourrait vous donner. Mais c'est ce qu'il fait si vous ne le spécifiez pas. Sinon, vous pouvez dire kill - quel que soit le signal
que vous souhaitez envoyer.

Donc -s pour signal. Dites-lui quel signal vous voulez envoyer et il enverra ce signal au conteneur à la place, mais la valeur par défaut est terminate. Sur la
page suivante, il y a un tableau de certains des signaux utiles. Certains d'entre eux ont des numéros, vous pouvez voir ici, mais les chiffres que je veux juste
vous faire savoir ne sont pas vraiment normalisés. Ainsi, alors que dans notre système sur bash, le signal de destruction peut être 9, mais dans d'autres
systèmes sur d'autres shells, même si vous changez simplement le coquillage sur notre système, il n'y a soudainement plus de numéro. Il ne connaît que les
noms, les noms standardisés sur les descriptions et ce qu'ils font ou standardisés sur les numéros sont la commodité que bash vous offre.

Certains podman et commandes utiles supplémentaires incluent le restart. Nous l'avons déjà mentionné. Bien sûr, c'est la même chose que d'arrêter puis
de recommencer le processus. C'est la même chose que vous feriez si vous vouliez redémarrer un service comme si vous aviez eu un problème, systèmectl
restart Apache. Vous pourriez le faire ici. Il s'agit de votre conteneur exécutant un service à l'intérieur de celui-ci, vous pouvez donc simplement redémarrer
ce service de cette façon. Supprimer supprimera un conteneur en cours d'exécution, désolé, qui est arrêté. Il est possible de faire a - f, comme je l'ai dit,
mais ne le faites pas si vous pouvez vous en empêcher. J'ai déjà mentionné que pratiquement toutes ces commandes que nous avons effectuées sont
interchangeables avec leurs homologues Docker. Celui-ci ne l'est pas. Le - a pour tous, n'est pas quelque chose que Docker pourrait faire à moins qu'il ne
l'ait mis dans les nouvelles versions de Docker. Ça fait un petit moment. Mais vous deviez auparavant si vous vouliez tous les supprimer, vous deviez dire
docker remove et ensuite les lister tous ici. Ou vous pouvez simplement dire supprimer - a pour tous ou arrêter a pour tous. C'est une belle commodité.
C'est tout pour cette section. Nous avons un exercice guidé à venir, alors j'espère que vous vous joindrez à moi pour celui-là.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Content de te revoir! Nous allons maintenant parler de l'attachement du stockage persistant aux conteneurs. Jetons un coup d'œil au livre ici. Je vous ai
déjà dit, que le Container Storage est éphémère. Nous en avons parlé comme s'il s'agissait du démarrage à partir d'un CD live, n'est-ce pas ? Vous ne pouvez
pas apporter de modifications au CD. Vous pouvez démarrer autant d'ordinateurs que vous le souhaitez à partir de cela. Et ils vont tous arriver de la même
manière. Et lorsqu'ils sont activés, vous pouvez y apporter des modifications. Vous pouvez entrer et ajouter des utilisateurs et supprimer des fichiers et
configurer votre réseau. Mais vous éteignez la machine, redémarrez-la à partir de ce même CD ou DVD, cet environnement en direct. Et ça va se présenter
exactement comme avant. Toutes ces modifications que vous avez apportées étaient uniquement en mémoire, elles sont éphémères. Ils vont être perdus.

Et c'est de la même manière que lorsque vous exécutez un conteneur à partir d'une image, une image immuable ici. Donc, toutes les modifications que vous
apportez, nous entrons, nous créons ce MySQL, nous le remplissons, mais nous, nous nous débarrassons du conteneur, faisons tourner un autre conteneur
même à partir de la même image. Et ça n'a pas la même chose et ce n'est pas là. Donc, si vous voulez sauvegarder des choses et je sais que vous le faites,
nous allons devoir monter dans une sorte de stockage externe. Maintenant, si vous faites cela, si vous avez ce stockage externe que vous apportez, vous
pouvez y enregistrer votre base de données ou tout ce que vous y enregistrez. Ensuite, même si ce conteneur disparaît, même si ce conteneur se termine,
meurt, peu importe, vous pouvez démarrer un autre conteneur connecté au même stockage. Et maintenant, un autre client peut lire et écrire à partir de la
même base de données et la base de données persiste. Idéalement, ce sera un endroit où il sera sauvegardé et dupliqué et des choses comme ça parce que
maintenant c'est externe à vos conteneurs.

Alors voyons comment nous allons faire cela. La première chose que nous allons devoir faire, car le stockage éphémère ne sera pas pour nous. Nous avons
couche, couche, couche, couche. Ce sont notre image et nous avons quelle que soit notre couche de conteneur, c'est éphémère. Cela va disparaître, n'est-
ce pas ? Nous devons donc créer un répertoire sur notre hôte ou en installer un à distance. Peu importe où il se trouve tant que vous avez ce dossier sur
votre machine. Nous devons préparer ce répertoire hôte de manière à ce qu'il soit logique pour le conteneur dans lequel nous allons le monter

Et puis, comme pour tout ce qui concerne la sécurité, nous devons passer du temps à rendre SELinux heureux. préparant ainsi le répertoire hôte. Que
devons-nous faire? L'une des choses dont nous parlons rend SELinux heureux. Il doit avoir le contexte SELinux approprié, d'accord ? Dans ce cas, il doit avoir
le contexte du type de fichier conteneur, donc container_file_t. Si vous listez, si vous faites un ls avec un Z majuscule - Z majuscule, vous pouvez voir les
contextes SELinux qui se trouvent sur votre machine. Et nous devons en avoir un comme celui-ci car s'il n'a pas cette étiquette, SELinux ne permettra pas
son utilisation à l'intérieur des conteneurs. Peut dire, oh non! il a échappé à ses limites et il est entré dans le système. Et c'est mon travail, c'est d'intervenir
et de vous protéger de cette chose qui est sortie de sa porte. Mais nous voulons que cela en fasse partie Donc type de fichier conteneur Pour ce faire nous
allons devoir exécuter plusieurs commandes

Nous allons y arriver dans une minute Étape 1 créez le répertoire Faire un répertoire Ici ils le font dans le répertoire /home/student. Nous allons créer ce
répertoire dbfiles. Et puis nous devons lui donner la propriété et les autorisations correctes qui ont un sens pour le conteneur. Cela n'a pas à avoir de sens
pour ma machine locale. Cela doit avoir un sens pour le conteneur car c'est là que la chose va être montée. Ainsi, par exemple, ils effectuent ce changement
de manière récursive 27 : 27. Désormais, 27 correspond à l'utilisateur MySQL et au groupe MySQL. Pourquoi 27 ? Pourquoi ne pas dire MySQL ? Eh bien,
nous exécutons MySQL dans le conteneur, mais cela signifie-t-il nécessairement que vous exécutez également MySQL sur votre machine locale ? Peut être
pas.

Donc, si vous mettez MySQL là-bas, votre ligne de commande va revenir et dire, pas d'utilisateur de ce type, nous ne savons pas comment rechercher cela.
Nous ne savons pas ce que c'est censé être. Vous devez définir ceci pour que cela ait un sens à l'intérieur du conteneur. Alors que 27:27. Vous pouvez
toujours mettre un numéro sur votre truc ici et ça le fera. Même si cet utilisateur n'existe pas sur votre machine, il le définira toujours et cela aura du sens
chaque fois qu'il arrivera à n'importe quel contexte.

Nous faisons ceci, ce changement. Une chose, à l'intérieur de podman, nous utilisons podman unshare.unprivilige share Ainsi, lorsque nous exécutons
podman et que nous créons quelque chose, cela se fera dans cet espace de noms d'utilisateur. Pas, pas en tant que root, mais dans l'espace de noms spécial
qu'il fait pour ces conteneurs sans racine. Et en faisant podman unshare, nous allons exécuter cette commande de changement de propriété dans le même
espace de noms où nous allons faire le conteneur. Donc, tout cela est du point de vue du conteneur.
Maintenant que nous avons créé le répertoire, nous lui avons donné le bon propriétaire. Et ce que nous devons faire maintenant, c'est rendre SELinux
heureux. Et ce sera cette commande obscure que vous avez, espérons-le, apprise dans d'autres classes Red Hat. Nous enseignons tout cela dans RH 134. Un
peu à ce sujet bien que la commande semanage soit SELinux manage. Et parmi toutes les différentes choses qu'il fait, fcontext, le contexte du fichier est
quelque chose que nous allons faire ici. Donc, semanage fcontext - Je vais énumérer toutes les règles de semanage et c'est ainsi qu'il sait quelles choses
doivent être conscientes et quelles sont leurs étiquettes.

Donc, ce que nous faisons ici est en tant que root, sudo semanage fcontext add -a pour add, -t pour type. Nous ajoutons l'étiquette de type de fichier
conteneur à ce chemin, /home/student/dbfiles/ peu importe. C'est-à-dire tout ce qui s'y trouve.

D'accord! donc une fois que nous avons créé cette règle, alors il connaît ce dossier et tout ce qu'il contient doit avoir ce type de fichier qui lui est appliqué.
Maintenant que la règle existe, nous pouvons faire un restorecon, restore contexte. Dans ce cas, nous pointons vers le répertoire dbfiles. Et donc je vais
l'étiqueter en conséquence. cela applique le type de fichier conteneur et il le mettra làbas. Et tous les nouveaux fichiers placés dans ce répertoire vont
également récupérer ce type à partir de cette règle. Donc, tout ce qu'il y a maintenant va être quelque chose que le conteneur peut utiliser. Très bien?
Maintenant, vous devez avoir tout configuré avant de démarrer le conteneur. Alors maintenant que nous avons configuré cela, c'est vraiment facile à partir
de là. Le plus dur est de rendre SELinux heureux. Maintenant que nous avons fait cela, nous allons juste faire notre podman run.

D'accord! qui va prendre une image de notre cache local, la transformer en conteneur ou la télécharger puis la transformer en conteneur. Et si vous vous
souvenez de la façon dont nous avons fait la redirection de port, avec le -p avant. C'était -p. À l'intérieur du port, à l'extérieur du port, deux points séparés,
n'est-ce pas ? -v est identique pour le volume. Volume dans le répertoire, hors répertoire. Désolé! Je l'ai dit à l'envers, n'est-ce pas ? Répertoire extérieur à
l'intérieur du répertoire, même avec le port extérieur à l'intérieur. Donc, ce répertoire extérieur, celui que nous venons de créer pour les fichiers de base de
données des étudiants à domicile. Et puis un deux-points va être monté à l'intérieur du conteneur à var lib MySQL, c'est là que la base de données est
écrite. Ainsi, vous pouvez réellement voir que vous pouvez exécuter ce conteneur, puis accéder aux fichiers de base de données \ /home/student. Et si vous
avez les bonnes autorisations, regardez à l'intérieur de ce répertoire et regardez en direct pendant que ces fichiers sont créés et se déplacent et faites tout
ce qu'il fait lorsque la base de données est accessible. C'est en fait là qu'il stocke ses fichiers sur votre ordinateur. Et puis, bien sûr, nous devons lui dire à
quelle image nous avons affaire ici. Donc, podman lance -v pour le volume, en dehors de deux-points dans le répertoire, Donnez-lui l'image, et cela devrait
nous démarrer. Tout ce que nous avons à faire après cela est un exercice guidé pour voir comment tout cela fonctionne. Alors j'espère vous y voir.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Mappage de port utiliser un -p cette fois. Maintenant, la raison pour laquelle nous faisons cela, dont j'ai parlé dans une autre section, mais encore une fois,
cela pourrait être votre première, au cas où vous ne le sauriez pas. Ces conteneurs vont obtenir leur propre adresse IP à partir d'un pool à l'intérieur de
votre machine. Il y aura un sous-réseau spécialement pour eux. Maintenant, podman est, sauf indication contraire, il va mettre tous les conteneurs que
vous créez sur le même réseau. Vous pouvez séparer cela, mais c'est une autre leçon ailleurs. Il est donc assez facile pour eux de se voir. Et il est assez facile
pour eux de voir comment utiliser votre machine comme passerelle. Et si vous vouliez rentrer ? Que se passe-t-il si vous souhaitez vous connecter à ces
éléments depuis l'extérieur de votre réseau ? Au lieu d'essayer de reconfigurer votre machine pour qu'elle devienne un routeur pour permettre aux choses
de revenir, il va simplement utiliser la redirection de port, où d'autres choses nous pourrons accéder directement à votre machine. Ensuite, il transférera
cela vers le port qui sera réellement desservi par le conteneur lui-même. Très, très simple à faire. Nous exécutons simplement notre commande podman
run. Jetons un coup d'œil au livre ici. podman run - d pour le fond. Bien sûr, nous allons lui donner un nom et ensuite nous avons fait ceci -p. C'est ça. Pas de
préparation, rien. Nous avons juste -p à l'extérieur du port à l'intérieur du port deux-points séparés. Donc, cette partie extérieure, dans ce cas, ce sont les
mêmes. Ils ne doivent pas nécessairement être les mêmes. Mais ce que cela veut dire, c'est que maintenant, après cela et en supposant que vous avez
rendu votre pare-feu heureux d'accepter des éléments de l'extérieur, toute personne essayant de se connecter à votre machine sur votre réseau local au
port 8080 obtiendra une réponse du port 8080 sur le conteneur. Même s'ils ne peuvent pas l'obtenir directement, votre machine va répondre en son nom
et simplement transmettre cela là-dedans, puis quelle que soit la réponse, elle va la déclencher. Il regardera le reste du réseau comme si votre machine
fonctionnait réellement. Dans ce cas, Apache sur le port 8080, même s'il s'exécute réellement dans le conteneur. Vous pouvez faire d'autres choses. Vous
pouvez spécifier si vous avez plusieurs adresses IP, plusieurs pseudos ou tout ce que vous pouvez dire. Je veux seulement qu'il soit activé, comme dans ce
cas, c'est localhost. Nous avons donc fait ce que nous venions, ce que nous sommes autorisés à venir de l'extérieur du port, à l'intérieur des ports. Alors
maintenant, nous pouvons dire que si je me connecte à localhost 8081, cela va atteindre 8080 ici. On peut le limiter ainsi. Si nous laissons de côté le port
extérieur, il en choisira un tout seul. Il choisira simplement un nombre élevé. Et vous devrez déterminer le numéro qu'il a choisi, en utilisant la commande
podman port, podman port. Et puis vous pouvez soit tout faire, soit dire qu'un conteneur spécifique vous dira voici les ports qui ont été transférés. 8080 a
été transféré au 35134. Dans ce cas, ce sera un nombre aléatoire qu'il en tirera. C'est si vous ne précisez pas. Vous avez donc ces options. Normalement, il
ne s'agira que de deux chiffres. Juste à l'extérieur du port, à l'intérieur du port. Donc -p à l'extérieur du port deux-points à l'intérieur du port. Très, très
simple. Vous n'avez pas besoin de définir quoi que ce soit d'épique spécial, à l'exception peut-être de rendre votre pare-feu heureux. N'oubliez pas d'ouvrir
le port dans le pare-feu si vous voulez que les gens puissent y accéder

Vous aimerez peut-être aussi