Transcription
1. INTRODUCTION DU COURS: Bonjour et bienvenue dans le cours sur la gestion des
conteneurs avec Pac-Man. m'appelle Andre
balance et je suis là pour vous aider à découvrir
les avantages de conteneurisation et également
comment créer et gérer des
conteneurs à l'aide de l'outil de gestion de
conteneurs Pokemon, je voudrais
préciser The Board Man est très similaire à Docker. Les connaissances acquises ici peuvent également être utilisées lors de
l'utilisation de Docker. Commençons maintenant le cours en vous
parlant un peu de moi. Je suis un ingénieur certifié Red Hat et je suis également un spécialiste
de l'utilisation des conteneurs
et Kubernetes est mon deuxième domaine d'
expertise : InfoSec. Je suis également certifié CompTIA Security Plus à
35 miles des RSSI. Maintenant que vous en savez
un peu plus sur moi, voyez ce que nous allons aborder dans
le cadre de ce cours. Faisons un bref aperçu de ce que nous devrions aborder
au cours de ce cours. Nous en apprendrons plus sur les
conteneurs, leur architecture, leurs avantages par la suite, nous aborderons des domaines
plus pratiques. Et nous parlerons des registres de
conteneurs. Ils le sont et comment
les configurer dans pod man. Ensuite, nous nous pencherons sur
la gestion des conteneurs, où nous verrons comment
créer des services conteneurisés. Nous pouvons désormais bien gérer les
conteneurs, si nous pouvons également gérer les images. est donc ce que nous allons
faire dans le module suivant. Les conteneurs disposent par défaut d'un stockage
éphémère. Donc, si nous voulons que nos modifications persistent après la
mort d'un conteneur, nous devons comprendre
comment allouer stockage
persistant
aux conteneurs. Nous aborderons ce point
dans le cinquième module. Dans le sixième module, nous nous concentrerons sur la mise en réseau de
conteneurs, où nous en apprendrons davantage sur la
liaison de ports et la création de réseaux. Comme aujourd'hui, nous allons terminer ce cours en apprenant à créer nos propres
images de conteneur à l'aide
de fichiers Docker et de répertoires de
travail. Maintenant que nous avons une
assez bonne vue d'ensemble de ce que nous
allons couvrir, commençons.
2. Conteneurs expliqués: Maintenant, dans notre premier module, nous allons parler un peu
des conteneurs, ce qu'ils sont et des
avantages de la conteneurisation. Nous terminerons ce
module en configurant un environnement de laboratoire où nous pourrons exécuter tous nos exercices pratiques
pour les prochains modules. Alors, sans plus tarder,
commençons. Voyons maintenant
comment fonctionnent les conteneurs. Les applications logicielles
dépendent désormais des bibliothèques système, des fichiers
de configuration ou des services fournis par l'
environnement d'exécution. En outre, l'environnement
d'exécution
d' une application logicielle
est installé dans un système d'exploitation qui s'exécute sur un hôte physique
ou une machine virtuelle, les administrateurs installent
l'application au-dessus
de ce système d'exploitation. Le principal inconvénient des applications
logicielles déployées
traditionnelles est que ces dépendances sont
liées à l'environnement
d'exécution. Une application peut nécessiter des versions
plus anciennes ou plus récentes d' un logiciel de prise en charge et du logiciel
fourni par le système d'exploitation. C'est là que
les conteneurs entrent en jeu. Le conteneur est un ensemble d' un ou de plusieurs processus isolés du
reste du système. Considérez-le comme un conteneur
d'expédition physique. Le conteneur d'expédition est un
moyen standard d'emballage et d'expédition. Il est étiqueté chargé, déchargé et transporté
d'un endroit à un autre dans une seule boîte. contenu
des contenants est isolé
du contenu des
autres contenants, sorte qu'ils ne s'
influencent pas entre eux. Ils sont donc isolés et
fonctionnent indépendamment. Quelles sont donc les caractéristiques
d'un conteneur ? Eh bien, ils s'exécutent directement sur
le système d'exploitation hôte et partagent ces ressources avec tous les conteneurs de ce système. Ils ont partagé le noyau hôte. Le noyau isole
les
processus d'application du
reste du système. Elles nécessitent beaucoup moins de
ressources que les machines virtuelles, sorte qu'elles sont plus rapides
à démarrer et à déployer. Elles incluent également toutes les
dépendances telles que les dépendances système et de programmation
et les paramètres de configuration. Peu importe où vous
allez les déployer, ils se comporteront de la même manière. Maintenant que nous comprenons un
peu l'architecture des conteneurs, examinons quelques termes utiles. Le conteneur est un
processus ou un ensemble de processus exécutant une
image avec des restrictions. L'image est un ensemble qui contient toutes les exigences pour exécuter ces processus ou ce processus. Un registre est un endroit où les images peuvent être stockées
et récupérées. Old man est l'outil de
gestion de conteneurs, que nous utilisons pour gérer à
la fois les images, conteneurs et la
façon dont ils interagissent. Docker est une autre
alternative populaire. Et le pod est constitué d'un ou de
plusieurs conteneurs, ce qui représente une
seule application. Examinons donc un peu les
avantages de la conteneurisation. Tout d'abord, nous avons la portabilité. Un conteneur d'applications crée un progiciel exécutable extrait
du système d'exploitation hôte. Par conséquent, il n'est ni dépendant ni
lié au système d'exploitation,
ce qui le rend portable et lui permet
de fonctionner de manière cohérente et uniforme sur
n'importe quelle plate-forme ou cloud, alors nous avons de la vitesse car
il n'y a pas de système d'exploitation à démarrer. Cela signifie également que l'heure de
début est très faible. Les nerfs sont également très efficaces si le
logiciel exécuté dans un
environnement conteneurisé partage le noyau du système d'exploitation de la machine hôte. Les développeurs peuvent partager les
couches d'applications entre les conteneurs. En outre, les conteneurs ont une capacité intrinsèquement inférieure celle des machines virtuelles, nécessitant des temps de démarrage
minimaux, ce qui permet aux développeurs d'
exécuter plus de conteneurs sur la même capacité
de calcul. machine. Cela permet d'améliorer l'efficacité des serveurs et de réduire les coûts associés aux
serveurs et aux licences. Et enfin, comme
indiqué précédemment, parce qu'il n'y a pas de système d'exploitation pour les deux conteneurs
ont également moins de frais généraux. Nous comprenons l'architecture
des
conteneurs et les avantages de la
conteneurisation. Configurez l'environnement du laboratoire. Tout d'abord, nous allons passer revue les conditions préalables à la
mise en place du laboratoire. Ensuite, nous examinerons
les commandes que nous devons exécuter. Enfin, nous ferons une
courte démonstration pour que notre environnement de laboratoire soit
opérationnel. En termes de prérequis, nous avons besoin d'un hôte exécutant Red Hat Enterprise Linux
version huit ou supérieure. L'hôte doit être connecté
à Internet. Il a donc besoin d'une connexion
Internet active, que nous utiliserons pour
télécharger à la fois Birdman et images de conteneur
attachées à notre hôte. Nous avons besoin d'une auto-assistance ou d'une description des
développeurs. Cela signifie que nous devons créer un compte développeur
auprès de Red Hat. En outre, il est recommandé nous ayons également un compte sur un dépôt de conteneurs à partir duquel nous obtiendrons nos images, comme Docker ou Clay. Mais cela n'est pas obligatoire. Examinons maintenant les
commandes dont nous aurons besoin pour configurer notre environnement de
laboratoire. Ce n'est donc pas
si compliqué. n'y a que trois commandes
que nous devons exécuter. Inscrivez-vous au First Day Subscription
Manager, qui enregistrera
notre système à l'aide notre compte Red Hat
et de notre mot de passe. Ensuite, nous avons
attaché
Subscription Manager moins moins auto, qui attachera l'
abonnement à notre hébergeur. Enfin, nous exécuterons la
commande yum install container tools pour installer l'outil de
gestion de conteneurs poor man à partir référentiels
Red Heads après avoir enregistré notre hôte avec succès. Nous allons maintenant utiliser toutes ces
commandes et configurer
notre environnement de laboratoire dans le
cadre de notre courte démonstration. Tout d'abord, nous allons utiliser
la commande Subscription Manager registered pour enregistrer
mon système auprès de Red Hat. Je vais entrer mon identifiant Red
Hat ainsi que mon mot de passe. Alors je dois juste attendre un peu. Comme vous pouvez le voir,
le message de sortie indique
que le système a été enregistré et que le nom du système est localhost point local domain. J'utiliserai la commande Subscription
Manager attach minus minus auto pour joindre
mon abonnement à mon hôte. Cela peut prendre un peu de temps, mais après
cela, j'ai accès aux référentiels de
têtes de lecture peuvent également
voir un message contextuel est
apparu disant que
l'enregistrement est réussi et mon statut
est inscrit en veille. J'utiliserai la
commande yum install container tools pour installer l'outil de gestion de conteneurs appelé Pac-Man à partir des référentiels Red
Heads. Vous pouvez voir qu'
il est téléchargement et qu'il est terminé. Maintenant. Félicitations.
Maintenant,
vous avez un environnement de laboratoire fonctionnel et en cours d'exécution.
3. Registries de conteneurs: Auparavant, nous avons configuré
notre environnement de laboratoire. Nous pouvons maintenant parler des registres de
conteneurs. Nous allons d'abord faire un tour d'horizon
théorique de ce que sont les
registres de conteneurs. Ensuite, nous passerons
à la démonstration, où nous créerons notre propre registre de conteneurs
personnalisé. Alors, sans plus tarder,
commençons. Alors, qu'est-ce que nos
registres de conteneurs ? Eh bien, pour faire simple, il existe un
référentiel d'images. Un registre de conteneurs
est une banque permettant stocker et d'obtenir des images de
conteneurs. Un développeur télécharge des images de
conteneurs dans un registre de conteneurs. Vous pouvez ensuite télécharger ces
images depuis un registre vers un système local pour exécuter et créer des services
conteneurisés
basés sur ces images. Il existe deux types de
registres, privés ou publics. Vous pouvez utiliser un registre public
ou privé dont votre organisation
contrôle la source de vos images de conteneur,
en particulier du point de vue de
la sécurité. Pour télécharger des images
de la plupart des registres, vous devez d'abord
avoir un compte avec ces registres
et vous pouvez vous connecter à ce registre à l'aide l'outil de
gestion des conteneurs old man, plus précisément la commande
pot man login. Maintenant, le fichier de
configuration par défaut pour les
registres de conteneurs est enseigné dans le fichier barre oblique ETC conteneur
barre oblique registry.com. Maintenant, les deux hommes ont la capacité
de gérer des conteneurs impitoyables. Cela signifie que nous pouvons créer un fichier
registry.com dans
le répertoire utilisateur dot config
slash containers. Cela aura priorité sur celui
présent dans slash, ETC slash container
slash registries.com. Maintenant, dans le fichier de
registre des conteneurs, nous avons la section de
recherche de ces registres. Dans la section
de recherche de registre, une liste de
registres interrogeables est configurée. Nous avons également les registres
dans une section sécurisée. Ces registres ne sont pas
protégés par le cryptage TLS. Maintenant que nous avons un bon
aperçu théorique des registres, examinons quelques commandes Pokemon pratiques
et utiles pour travailler avec les registres. abord, nous avons la commande
old man login
utilisant la commande boat man
login, comme nous pouvons le voir dans l'exemple, je vais me connecter à mon registered.com en utilisant un
nom d'utilisateur et un mot de passe. Ensuite, nous avons la commande pod
man info nous
donnera des informations sur la configuration de PODD man, y compris les registres interrogeables. Enfin, nous avons la commande de recherche de l'homme du
port,
la commande de recherche de l'homme de point. Je peux parcourir mes
registres et
rechercher un
mot clé spécifique comme HTTLD. Par exemple, lors de la recherche PacMan, HTTLD recherchera dans les registres toute image de conteneur
contenant le mot clé HTTDP. Alors, sans plus tarder, passons maintenant à
la démo et mettons en pratique
nos connaissances acquises. abord, je vais utiliser VIM
pour vous montrer le fichier slash, ETC slash container slash
registered.com. Nous avons ici les registres de
recherche non qualifiés. Ce sont les registres
par lesquels pod man effectue des recherches. Quand je cherche une image, nous avons ici
Registry.centos.org, quiet.docker.io, etc. Je vais maintenant quitter
ce document en particulier. Je vais créer un nouveau chemin
en utilisant le MK D ou Command. Et mon nouveau chemin sera des conteneurs slash dot
config. Maintenant, je vais copier le fichier contenant la barre oblique
ETC slash registered.com dans le chemin des
conteneurs de barre oblique dot config. Je garderai le même
nom, registry.com. Maintenant, je vais modifier ce
fichier particulier parce que je veux seulement que mon outil
de
gestion de conteneurs pod man recherche dans
registry.access.redhead.com. Je vais donc supprimer
tous les registres que je ne voudrais pas utiliser, tels que Registry Dots, Centos.org, quiet.io
et docker.io. Ensuite, je vais enregistrer et
quitter ce document. Je vais maintenant faire une commande de
recherche PubMed avec le terme HTTLD pour tester si mes
registres sont corrects. Et nous pouvons clairement voir
que nous avons des résultats ici. Maintenant, je vais effacer l'écran et utiliser la commande port man info pour obtenir des informations sur notre configuration
Pac-Man. Et nous pouvons clairement voir ici que les registres interrogeables
ne sont que registry.access.com. Donc, le seul que j'ai laissé dans le fichier dot config slash containers slash
registries.com. Notre démo a donc parfaitement fonctionné. Merci beaucoup et à
bientôt dans le prochain module.
4. Gestion des conteneurs: Précédemment, nous avons
découvert les registres de conteneurs. Dans ce module, nous
allons maintenant apprendre à gérer les
conteneurs à l'aide de l'outil de gestion de
conteneurs pod man. Ce module sera très
pratique et nous terminerons ce
module par la démonstration, mettant en pratique toutes les
connaissances que nous avons apprises. Alors, sans plus tarder,
commençons. Maintenant, en termes de commandes utiles, nous avons d'abord la commande port
man pool, spécifie un registre,
puis une image dans
ce référentiel. Cette
image sera téléchargée sur l'hôte local. Ensuite, nous avons
la commande Pokemon
inspect qui spécifie une image enregistrée
localement. Cela nous donnera des informations
détaillées sur cette image de conteneur. En utilisant la commande pod man
images, nous pouvons obtenir une liste des images
enregistrées localement et en utilisant la commande poor man RMI
spécifiant un nom d'image, nous pouvons supprimer une image enregistrée
localement. Avant de passer aux conteneurs en
cours d'exécution, faisons un bref aperçu
des états dans lesquels un
conteneur peut être trouvé. Super, cela signifie
que notre conteneur est créé mais qu'il n'a pas démarré en cours d'exécution signifie qu'
un conteneur est en cours
d'exécution avec tous ses processus. Stop signifie qu'un conteneur est arrêté et qu'il attend un signal
pour démarrer. Ses processus
attendent la même chose. Post signifie qu'un conteneur et
ses processus sont mis
en pause alors que cela signifie que tous ses processus ont été fermés. Voyons maintenant
quelques commandes utiles
pour exécuter des conteneurs à l'aide l'outil de
gestion de conteneurs poor man avec la commande podium et run. Nous pouvons exécuter une commande
dans un conteneur. Nous pouvons spécifier le nom avec
l'option minus-minus name. Et à la fin de la commande, nous avons spécifié l'image sur
laquelle ce conteneur est basé en utilisant l'option
moins d, qui signifie détaché, signifie que le conteneur sera exécuté dans mode détaché. Cela signifie que le
conteneur s'exécutera en arrière-plan jusqu'à ce qu'il soit arrêté. En utilisant la commande pot man ps, nous pouvons lister tous les
conteneurs en cours d'exécution à
l'aide de la commande pod man ps
avec cette option moins une, nous pouvons lister tous les conteneurs
en cours d'exécution ou non. À l'aide de la commande pod man logs. Nous pouvons obtenir des chargements
à partir d'un conteneur de noms, ce qui peut nous aider
à résoudre les problèmes
éventuels
associés à ce conteneur. Je voudrais préciser que si nous utilisons l'option moins e, nous déclarerons les variables
environnementales qui sont transmises
à ce conteneur. Nous déportons la commande man stop
en spécifiant un nom de conteneur. Nous pouvons arrêter un conteneur en cours d'exécution avec la commande de démarrage de Pac-Man. Encore une fois, spécifiez
le nom du conteneur. Nous pouvons démarrer un conteneur arrêté à l'aide de la commande pod man RM. Nous pouvons supprimer un conteneur
en spécifiant son nom. Avec la commande Pac-Man cp. Nous pouvons copier des fichiers de
l'hôte vers un conteneur en utilisant la commande old man exec en spécifiant un nom de conteneur, nous pouvons exécuter une commande dans un conteneur de noms et
en utilisant la commande pot man exec avec
les options informatiques moins spécifiant slash bin slash bash, nous pouvons obtenir un terminal
dans un conteneur de noms. L'option minus i transfère toutes les entrées de l'
hôte vers le conteneur. Et l'
option moins d nous donnera un pseudo terminal
dans ce conteneur. Maintenant que nous avons
une bonne vue d'ensemble de toutes les commandes importantes nécessaires pour exécuter des conteneurs à l'aide l'outil de
gestion de conteneurs pod. Passons à la démo. Maintenant, je vais d'abord rechercher une image HTTP D à l'aide de la commande de recherche du
pod man. Je vais juste faire défiler un peu vers le haut
et dans la description, je peux voir un serveur Apache
HTTP 2.4. Je vais copier le nom de cette image,
effacer l'écran et utiliser la
commande Pull Postman pour la télécharger localement. Comme vous pouvez le voir, il essaie d' extraire l'image
du registre, d'obtenir les signatures source et de copier les
blobs en ce moment même. Attendons donc un peu. Le sondage a donc
été couronné de succès. Pour valider cela, je vais
utiliser la
commande pod man images et nous pouvons voir que
notre image est présente ici. Ensuite, j'utiliserai la commande port
mapping spec pour obtenir informations
détaillées sur
cette image particulière. Nous pouvons voir de nombreuses
informations ici. abord, nous pouvons voir l'utilisateur
sous lequel s'exécute cette image, qui est utilisée à 1001. Nous pouvons également voir des détails sur les ports exposés de l'
image, qui sont 8088443. Un résumé et une description de ce que cette image est censée faire, le répertoire
de travail de cette image, ainsi que des détails
concernant le vendeur de l'image qui est
Redhead Incorporated, et la version de l'
image qui est 2.4. Je vais juste effacer l'écran. Maintenant. Maintenant, je vais utiliser
la commande port VLAN run en spécifiant le nom
de mon conteneur via l'option minus-minus
name. Et elle sera appelée
application Web et l'image sur
laquelle elle sera basée. Et nous pouvons clairement voir que
le conteneur a démarré. Il nous fournit des
journaux et des erreurs, mais il a fonctionné correctement. Je vais juste quitter l'écran. Je vais maintenant utiliser la commande boatman ps minus a pour
lister tous les conteneurs. Et nous pouvons clairement voir
notre conteneur d'applications Web, créé il y a
39 secondes. Je vais le supprimer en utilisant la commande du pauvre homme RM
en spécifiant son nom. Maintenant, je vais exécuter le
conteneur à nouveau, mais maintenant en mode détaché spécifié par
l'option moins d. Je maintiendrai l'application Web du
même nom, et elle sera basée
sur la même image. Je vais valider mon travail à
l'aide de la commande pause
band ps, qui nous montrera tous les conteneurs
en cours d'exécution. Et nous pouvons voir que notre
conteneur appelé Web App, créé il y a
deux secondes, est opérationnel. Je vais obtenir
des informations détaillées sur ce conteneur grâce à
l'utilisation des journaux Pac-Man. Et nous pouvons voir certains journaux associés à notre conteneur d'applications
Web. Maintenant, laisse-moi juste
effacer l'écran. Et maintenant, utilisons
la
commande Pokemon stop pour arrêter avec
un conteneur d'applications Web. Nous pouvons valider notre
travail en utilisant
le vieil homme ps moins
une commande où nous pouvons vérifier l'état
du conteneur et il est passé de up à exit. Je vais redémarrer le conteneur à aide de la commande de
démarrage du batelier. Et comme vous pouvez le voir, le statut est passé de
« quitté » à « supérieur ». Je voudrais maintenant faire une démonstration de la commande
Pac-Man cp. Mais avant cela, je vais créer un document appelé index.html avec le contenu de
helloworld en utilisant la commande echo et la redirection de
sortie, puis j'utiliserai la commande
port man cp, en spécifiant le fichier index.html que j'ai précédemment créé. Et je vais le transférer
dans le conteneur appelé wet-bulb dans le
dernier slash var slash v, V, v slash HTML
slash index.html. Maintenant, je vais entrer dans le conteneur
en utilisant la
commande boatman exec avec les
options informatiques moins slash bin slash bash. Comme vous pouvez le voir, le
lot a changé et en exécutant une commande P
S minus ox, je peux clairement voir que je ne suis
plus sur mon hôte local. Je suis dans le conteneur. Je vais changer
de répertoire en slash var slash VB slash chemin HTML. Et ici je peux faire une liste. Dans cette liste,
nous pouvons clairement voir le fichier index.html. Et je vais simplement lire le
contenu de ce fichier, qui est exactement tel que
spécifié. Bonjour tout le monde. Nous avons réussi à copier
notre fichier depuis l'hôte local vers le conteneur
au niveau de ce chemin spécifié. Si je voulais vérifier
le contenu de ce fichier sans
entrer dans le conteneur, je peux le faire en
utilisant la commande pod man exec pour exécuter la commande cat à
ce chemin spécifié. Il est donc temps de faire le
ménage après nous. abord, je vais lister
tous les conteneurs avec le pod man ps moins une commande, et nous pouvons clairement y voir notre conteneur d'application
Web. Ensuite, j'arrêterai
le conteneur avec la commande Pokemon stop
web app. Ensuite, je
retirerai le conteneur avec la commande port man RM. Ensuite, je vais lister toutes les
images présentes sur mon hôte local à l'aide de la commande
Pokemon images, je vais supprimer mon image
existante avec la commande RMI pot man. Et je vais à nouveau lister toutes les images avec la commande Images
Pokemon. Et nous pouvons clairement voir
que nous n'avons aucune image. Et en utilisant la commande pod
man ps minus a, nous pouvons également
voir clairement qu'il
n'y a plus de
conteneurs en cours d'exécution à ce stade. Alors félicitations. Vous avez maintenant une
compréhension de base de la gestion des services
conteneurisés à l'aide l'outil de
gestion de conteneurs port man. Rendez-vous dans le prochain module
où nous
parlerons de la gestion des images de conteneurs.
5. Gestion des images: Dans le
module précédent, nous avons
parlé de la gestion des conteneurs. Voyons maintenant
comment nous pouvons gérer les images au sein de
notre environnement. Alors, sans plus tarder,
commençons. Passons maintenant à quelques commandes
essentielles pour
gérer les images chez les facteurs. Nous avons déjà vu un bassin d'homme
coulé. Maintenant, en utilisant la commande port
man poor, nous pouvons enregistrer une image de conteneur
localement à partir d'un dépôt. Nous pouvons lister toutes les images de conteneurs à l'aide des images de pot man. Et si nous voulons
supprimer une image enregistrée localement, nous pouvons utiliser la commande pod man RMI en spécifiant
le nom de l'image. Supposons maintenant que nous
souhaitions renommer une image. Nous pouvons le faire en utilisant
la commande tag Pac-Man, en spécifiant le nom de l'image
d'origine et le nouveau nom de l'image. Nous aimerions le donner.
Si nous voulons télécharger une
image de conteneur localement sûre dans un registre, nous pouvons le faire en utilisant
la commande push Pac-Man. Si nous voulons obtenir des informations
détaillées sur une image de
conteneur stockée localement, comme nous l'avons vu précédemment,
nous pouvons le faire en
utilisant la commande pot man
inspect. Supposons maintenant que nous travaillons dans un conteneur tel qu'un serveur Web
HTTP. Nous avons modifié notre fichier
index.html et nous aimerions créer une nouvelle image basée sur
ce conteneur modifié. Nous pouvons le faire en utilisant
la commande
pod men commit afin de créer une image à
partir d'un conteneur en cours d'exécution. Maintenant que nous avons
un aperçu de toutes les commandes importantes
pour la gestion des images, passons à la démo. Tout d'abord, je vais utiliser la recherche de
port man pour trouver une image HTTDP adéquate. Je vais faire défiler
les résultats vers le haut. Et encore une fois, je vais copier
le premier résultat, qui est HTTP D24 RHEL sept. Je voudrais effacer l'écran et maintenant je vais utiliser le pool Pac-Man
afin de télécharger
cette image depuis le dépôt et de l'
enregistrer localement. Maintenant, attendons un peu que
le tirage soit finalisé. Maintenant que le
téléchargement est terminé, je peux utiliser les
images de Pac-Man afin valider que l'image
a bien été réussie. Et nous pouvons le voir ici. Maintenant, je vais utiliser l'
inspecteur de port pour inspecter l'image. Comme vous pouvez le voir, Pokemon
expect nous donne des informations
détaillées sur
cette image particulière. Nous pouvons voir l'utilisateur sous
lequel l'image est exécutée. Nous pouvons voir les ports exposés. Vous pouvez voir un résumé de ce que l'image est censée faire, une description détaillée à ce sujet. Maintenant, je voudrais rétracter
l'image à l'aide de la commande
boatman tag, en spécifiant le nom de
l'image d'origine et la nouvelle balise que je vais lui donner sera
appelée ma nouvelle version de balise 2. Je peux le construire par le travail en utilisant la commande Pokemon images N. Nous pouvons clairement voir ici localhost slash
minute tag version 2. Maintenant, je vais utiliser le conteneur de commande port man run en mode détaché. Le conteneur sera appelé application
web et sera basé sur l'image appelée
minute tag version 2. Comme vous pouvez le constater, le conteneur
a été créé avec succès. Et maintenant je vais lancer
la commande Pac-Man ps moins a afin de valider
qu'elle est opérationnelle. Et qu'est-ce que vous savez qu'il
fonctionne correctement ? Ensuite, je vais ouvrir un terminal
dans le conteneur en utilisant la commande pot man exact minus IT
slash bin slash bash. Là, je vais faire un test d'écho et rediriger la sortie
vers le fichier
slash var slash slash HTML slash
index.html. À l'intérieur de ce conteneur, je
sortirai du conteneur. Je vais lancer Pac-Man ps minus a.
Encore une fois, nous pouvons voir qu'
il est opérationnel. Et je vais utiliser la commande
appelée Pac-Man commit afin de créer une image basée sur ce conteneur modifié, pod men commit web
app, ma nouvelle image, version 1, nous pouvons voir que l'image était
créé avec succès. Je vais arrêter le
conteneur existant appelé web map, et je le supprimerai à l'aide de
la commande poor man RM. Je vais effacer l'écran. Et maintenant, je vais créer
un nouveau conteneur fonctionnant en mode détaché
avec le même nom, mais maintenant sur
la base de l'image validée que
nous avons créée précédemment, le conteneur a été créé
avec succès et Maintenant, je vais utiliser la commande
pot man exec pour exécuter une commande cat dans le conteneur pour voir si
le fichier est présent. Barres slash Cat telles que v, V, v slash HTML slash index.html. Et nous pouvons clairement
voir que la sortie est conforme aux tests Sud attendus, donc cela a parfaitement fonctionné. Maintenant, je vais utiliser
la
commande Pokemon stop pour arrêter mon conteneur d'applications
Web. Je vais le supprimer à l'aide
de la commande pod man RM. Je vais maintenant exécuter la commande
Pac-Man images pour répertorier toutes les images enregistrées sur
mon système de fichiers local. Et je vais supprimer
chacun d'eux avec la commande Pokemon RMI. So proud man, RMI, minute image version
1, pot man, RMI, my new tag 2 et poor man RMI registry dot
access, tous deux Red Hat.com, nous pouvons valider
que nos systèmes, il est nettoyé par exécuter la commande
pot man images et département ps moins une commande et il n'y a plus rien. Félicitations, vous avez maintenant une compréhension
de base de la gestion des images de
conteneurs à l'aide l'outil de
gestion de conteneurs Pac-Man. Rendez-vous dans le prochain module
où nous
parlerons du stockage éphémère et
persistant.
6. Stockage persistant: Bonjour et bon retour. Dans ce module, nous
parlerons du stockage de conteneurs et apprendrons comment monter le stockage
persistant dans des conteneurs. Parce que par défaut, les conteneurs
ont un stockage éphémère. Cela signifie donc que
tout ce que nous avons fait dans un conteneur au moment
de la destruction a disparu. Alors allons-y. Le stockage
utilisé par le conteneur est donc éphémère. La nature éphémère
du stockage des conteneurs signifie que son contenu est perdu lorsque
vous supprimez le conteneur en montant un répertoire à partir de l'hôte
à l'intérieur du conteneur, vous donnez au conteneur
stockage persistant. Toutes les modifications et
le contenu du répertoire monté seront écrits sur le système de fichiers hôte. Ainsi, ils persisteront une fois que le conteneur aura été
détruit ou retiré. N'oubliez pas que
vous devez prendre en compte
les autorisations du système de fichiers lors du montage
d'un volume
persistant à utiliser par le conteneur. Maintenant, l'outil de
gestion de conteneurs Pokemon prend en charge conteneurs
sans racine si vous
exécutez le conteneur en tant que racine utilisateur de
l'hôte, l'UID et le GID correspondront
à ceux du conteneur. Dans un conteneur sans racine, l'utilisateur dispose d'un accès root
au sein du conteneur, car pod man crée le conteneur
dans l'espace de noms de
l'utilisateur, l'utilisateur racine du
conteneur correspond à l'UID de l'utilisateur
au sein de la machine hôte. Chaque utilisateur situé après dans
le conteneur est mappé à un utilisateur compris dans la plage de
100 000. Voyons maintenant
quelques commandes utiles pour monter un
stockage persistant dans des conteneurs. Avec la carte UID Padma unshare cat slash proc slash slash. Nous pouvons voir ce mappage UID des utilisateurs dans le conteneur. Nous déportons man, unshare cat
slash proc slash slash slash JD map. Nous pouvons voir ce mappage GID. Maintenant, si nous voulons monter stockage
persistant
dans un conteneur, nous allons utiliser
la
commande pod man run avec l'option minus v. La première commande crée un serveur Web HTTP où le contenu est obtenu
à partir du répertoire monté,
barre oblique, le contenu Web sur
l'hôte est monté sur
la barre oblique, var, barre oblique, www,
point, slash, chemin HTML à l'intérieur du contenant. L'ajout d'un Z majuscule à
la fin du chemin garantit
également que vous définissez le contexte SE Linux correct. Passons maintenant à la démo et rendons les choses un
peu plus pratiques. Commençons donc cette
démonstration en examinant d'abord les
mappages GID et UID à l'aide de la commande pod
man unshare. Pod man, unshare cat slash, proc slash, slash your ID map. Et nous pouvons voir les
mappages ici. Et Birdman unshare cat slash
proc slash taille de cellule JID. Et nous pouvons voir les mappages
GID ici. Maintenant que nous avons cela, créons
un nouveau chemin. Je vais créer un
répertoire appelé
contenu Web dans le
domicile de mon utilisateur. Dans ce dossier, je vais
faire écho au message monté IN et je vais rediriger
la sortie vers un fichier appelé index.html. Je vais maintenant effacer l'
écran et voir
quelles images nous avons disponibles à quelles images nous avons disponibles l'aide de la commande
Images de Pac-Man. Nous n'en avons aucun. Je vais donc utiliser la commande pod man
pull afin télécharger une image d'un serveur
HTTP localement. Et attendons un peu que le téléchargement de l'image soit terminé. Le
téléchargement de l'image s'est terminé avec succès. Et nous pouvons utiliser la commande pod
man run
afin de créer un conteneur
appelé Web App. Il fonctionnera en mode
détaché et je vais monter le
répertoire de contenu Web que j'ai précédemment créé à partir de mon
hôte dans le dossier slash var slash www slash HTML
dans le conteneur, maintenir les contextes
corrects de SELinux. En ajoutant le
Z majuscule à la fin, je lierai le port
via l'option moins p. port 8082 de l'hôte
sera donc lié au port 8080
du conteneur. Et je vais utiliser
l' image que j'ai
précédemment téléchargée. Comme nous pouvons le voir en utilisant la commande
pod man ps moins a, le conteneur est
opérationnel et le port
est délimité correctement. Si je fais une commande curl sur l'hôte local
via le port 8082, nous pouvons voir le message «
I am Mountain ». Maintenant, je vais utiliser la commande boatman
exec pour obtenir un terminal N dans
le conteneur et je vais faire écho à un nouveau message. Ce message signifie que je suis modifié et que je vais
afficher la sortie standard, le fichier que nous avons monté
dans le conteneur. Donc index.html. Je vais quitter le conteneur
à l'aide de la commande exit, et maintenant je vais lire le fichier à partir des points de montage,
donc à partir du contenu Web. Et nous pouvons voir que les deux valeurs
sont montées et que j'ai modifié. Si j'utilise la commande curl, nous pouvons voir la même sortie. Maintenant, je vais arrêter le
conteneur et le
retirer à l'aide de
la commande pod man RM. Et je vais le recréer juste pour voir la nature du stockage
persistant. Nous allons donc tester cela en
exécutant une commande curl sur l'hôte local sur le port 8082. Comme vous pouvez le constater, le message est
resté inchangé. Cela est dû au fait que le stockage de ce conteneur particulier pour ce chemin particulier est
conservé sur l'hôte local. Ainsi, même si le
conteneur a été détruit, ce qui était écrit dans le répertoire de contenu Web est
resté persistant. Merci beaucoup
et je vous verrai dans le prochain module
où nous
parlerons de la liaison de port.
7. Reliure de port: Bonjour et bon retour. Dans le module précédent,
nous avons parlé du stockage éphémère
et du stockage persistant, et nous avons appris comment donner un stockage persistant aux
conteneurs, afin de ne rien perdre
lorsqu'ils sont détruits. Dans ce module,
nous allons
parler de la liaison des ports
et de
la manière de lier les ports de l'hôte local aux emplacements de conteneurs pour les rendre également
accessibles de l'
extérieur. Alors allons-y. Qu'est-ce que la liaison des ports à conteneurs ? Eh bien, la connexion à un
conteneur signifie que les clients doivent connecter
deux ports de l'hôte qui enverront le trafic vers les ports de conteneurs sportifs ou les ports exposés aux
conteneurs. Nous pouvons mapper les ports de l'hôte ceux accessibles depuis
l'intérieur du conteneur, afin de rendre les conteneurs accessibles
de l'extérieur également, pas seulement depuis l'hôte local. N'oubliez pas que si
vous souhaitez également les rendre accessibles de l'
extérieur, nous devons également vérifier les règles de
pare-feu pour assurer que tout trafic sur
ces ports est autorisé. gardant cela à
l'esprit, examinons quelques commandes essentielles pour effectuer la liaison de port de conteneur. Maintenant, afin de lier un port de l'hôte local
au conteneur, nous allons utiliser
la
commande pod man run avec l'option minus p. Notre premier exemple crée un
serveur Web HTTDP conteneurisé appelé application Web, où tout le trafic provenant du
port 8082 de l'hôte est transmis au port
8080 du conteneur. N'oubliez pas que le conteneur doit accepter le trafic sur ce port. Cela signifie qu'il doit être exposé. Et nous pouvons voir qu'en
utilisant la commande pot man in spec sur
l'image du conteneur, en utilisant le
port valise moins une commande, nous pouvons voir tous les mappages de ports. Et en utilisant la commande pod man port spécifiant le nom du
conteneur, nous pouvons voir le mappage de port
pour un conteneur de noms. N'oubliez pas de
créer une règle de
pare-feu persistant à l'aide de la commande firewall CMD afin
d'autoriser le trafic sur ce port. Maintenant que vous avez un bon aperçu
théorique de ce qu'est le mappage de ports et sa fonction dans
Container Management. Passons à la démo. abord, j'utiliserai
la
commande Pokemon images pour montrer que j'ai une image de
conteneur HTTDP enregistrée localement. Ensuite, j'utiliserai la commande port
man run afin créer un conteneur appelé web app running
and detached mode, qui transmettra tout le
trafic du port 8082 du côté hôte au port
8080 sur du côté du conteneur. Comme nous pouvons le voir à travers le
pod man ps moins une commande, le conteneur est opérationnel. Maintenant, je vais utiliser une commande proud
man exec avec l'option minus i t
afin d'obtenir un terminal actif
dans le conteneur. Ici, je vais faire écho au
message hello world, et je vais rediriger la
sortie vers le fichier slash var slash www slash HTML slash
index.html. Ensuite, je vais quitter le conteneur
avec la commande exit. Nous allons maintenant utiliser
la commande port man port moins une commande pour voir
tous les mappages de ports. Et nous pouvons clairement
voir que le trafic de l'hôte local sur le port 8082 est redirigé vers le port
8080 du conteneur. Nous pouvons également le voir
en utilisant la commande port man port en spécifiant
le nom web app. Maintenant testons cela en
utilisant une commande curl, et nous allons appeler l'hôte
local sur le port 8082. Et nous pouvons clairement voir
le message d'Helloworld. Cela a donc parfaitement fonctionné. Maintenant, afin de rendre le trafic accessible depuis l'extérieur de
l'hôte local, je vais également ajouter une règle de
pare-feu
afin d'autoriser le
trafic sur le port 8082. Il me demande des privilèges
administratifs. Je vais les donner et c'
est un succès. Notre serveur Web
Apache conteneurisé
est désormais accessible à la
fois depuis l'hôte local et également l'extérieur de l'
hôte local sur le port 8082. Nous pouvons également voir
la liaison de port, même si nous lançons un Pokemon
ps moins une commande, nous pouvons clairement voir ici que trafic de l'hôte local est redirigé vers le port 8080 slash
TCP côté conteneur. Maintenant, comment puis-je savoir que
je dois le
faire directement sur le port 8080 du côté du
conteneur, c'est là que Pokemon
Inspect entre en jeu. Nous pouvons inspecter l'image du conteneur localement
sûr et nous
examinerons les ports exposés. Les ports exposés sont en
fait ceux qui sont accessibles
au conteneur. D'où autorise-t-il
le trafic ? C'est ainsi que j'ai
su que le port 8080 était l'endroit où je devais rediriger
le trafic depuis le port 8082. Maintenant, il ne reste plus qu'à
nettoyer après nous, notre application web stop the container
avec la commande man stop. Ensuite, je vais le supprimer avec
la commande Pokemon RM. Enfin, je vais
supprimer l'image avec la commande Pokemon RMI. Merci beaucoup
et à bientôt dans le prochain module
où nous
parlerons de
Container Networking.
8. Réseaux de conteneurs: Bonjour et bon retour. Dans le module précédent,
nous avons parlé un peu mappage de port et liaison d'un port hôte à un port exposé de
conteneurs. Nous allons maintenant approfondir la question de la mise en réseau
des conteneurs. Nous verrons la
capacité des pauvres à créer des réseaux et à résoudre des noms
au sein de ces réseaux. Alors, sans plus tarder,
commençons. Passons maintenant à quelques points
essentiels
pour la mise en réseau de conteneurs. La commande importante ici est réseau
des deux hommes avec la commande de création de réseau de
facteur. Nous pouvons créer un réseau en spécifiant son nom de passerelle et son sous-réseau. Le réseau pauvre inspecte
en spécifiant un nom de réseau, nous pouvons obtenir des détails
sur un réseau existant. Nous déportons man network create en spécifiant un nom de conteneur. Nous pouvons connecter le conteneur
à un réseau existant. Nous déportons le réseau man supprimé. Nous pouvons supprimer un réseau
existant et nous déportons la commande man run. Nous pouvons ajouter l'option réseau
moins moins et connecter le conteneur à
un réseau lors de sa création. Maintenant que nous avons
une bonne vue d'ensemble des commandes
importantes liées
à Container Networking, passons à la démo. Maintenant, pour commencer cette démo, je vais utiliser la commande port man
images pour vous
montrer mon image de conteneur
HTTDP enregistrée localement. Je vais maintenant utiliser la commande de
recherche du pauvre pour rechercher une huitième image Red Hat Enterprise
Linux. Je l'ai copié et
maintenant je vais utiliser les commandes post man Paul
pour le télécharger localement. Attendons donc un peu que
le téléchargement soit terminé. Maintenant, je vais utiliser la
commande
poor man network create pour créer un
réseau pour mes conteneurs. Le sous-réseau sera
spécifié via l'option moins sous-réseau, et il sera de 192168
points un point 0 barre oblique 24. Et la passerelle
sera spécifiée via l'option de
passerelle moins-moins, et elle sera de 192168
points un, point un. Le nom de mon réseau
sera mon réseau. Maintenant que le réseau a
été créé avec succès, nous pouvons passer à la création de
mes services conteneurisés. abord, je vais utiliser la commande Pac-Man
run pour créer un conteneur appelé client
fonctionnant en mode détaché, connecté à mon réseau via l'option réseau minus-minus
avec stockage persistant. L'image de base derrière
ce conteneur sera l'image de base Red Hat Enterprise
Linux huit. Comme vous pouvez le voir, le
conteneur a été créé
avec succès et je vais lister ou exécuter des conteneurs avec le Pokemon ps moins une option, et il est opérationnel. Ensuite, je vais créer mon deuxième service
conteneurisé à l'aide de la commande Pokemon run. Il s'agira d'un
serveur Web Apache appelé serveur Web, fonctionnant en mode détaché, connecté également à mon réseau. Il utilisera l'image
http D24 L7 de register.access.com, que j'ai stockée localement. Ce second conteneur a
également été créé avec succès. Nous pouvons les voir
à la fois opérationnels et opérationnels. Maintenant, je vais utiliser la commande pod
man network ls pour voir tous nos réseaux
disponibles. Et nous pouvons clairement
voir mon réseau ici. Et pour obtenir des
informations plus détaillées sur mon réseau, je vais utiliser la
commande postman
network inspect en spécifiant le
nom de mon réseau. Et nous pouvons voir ici à
la fois le sous-réseau et la passerelle. Maintenant que nous avons
une bonne vue d'ensemble de notre réseau
et de nos conteneurs, voyons si tout fonctionne. J'utiliserai la commande port
man exec avec l'option minus IT pour ouvrir un terminal dans le conteneur du serveur
Web. Ici, je vais utiliser la commande
echo et rediriger sa sortie vers
le fichier slash var slash
www slash HTML slash
index.html. Afin de créer un message
personnalisé. Plus précisément, bonjour, je
vais quitter ce conteneur, et maintenant je vais entrer dans l'autre conteneur,
le conteneur client, à nouveau avec l'option pot man exempt
moins IT pour obtenir un terminal dans
le client qui exécute Red Hat
Enterprise Linux huit. Ici, je vais utiliser la commande
curl pour boucler le serveur web
sur le port 8080, qui était celui exposé. Et nous pouvons clairement voir que
le message est conforme aux attentes. Félicitations, nous avons
créé deux conteneurs. L'un s'exécutant dans un serveur Web
Apache conteneurisé exécutant Red Hat
Enterprise Linux huit, nous avons créé un réseau entre les deux et nous pouvons voir qu'ils communiquent et qu'ils
ont également une résolution de serveur nommée. Merci beaucoup
et à bientôt dans le prochain et dernier module.
9. Création d'images: Bienvenue dans le
module final de notre cours. Ici, nous allons apprendre comment créer images de
conteneur à partir de
fichiers pour nous aider à créer nos propres images personnalisées et
à les personnaliser selon nos propres besoins. Alors, sans plus tarder,
commençons. Tout d'abord, nous allons
parler des étapes création
d'une image de conteneur. Pour que Birdman puisse créer des images automatiquement en lisant les
étapes d'un fichier Docker, vous pourriez vous demander ce qu'
est un fichier Docker ? Un fichier Docker est un
document texte qui contient toutes les commandes qu'
un utilisateur peut appeler pour assembler une image. Désormais, les fichiers Docker
facilitent également la
création de nouvelles images de conteneur
basées sur une image existante,
comme l' extension d'une largeur d'image de
conteneur
Enterprise Linux évaluée largeur d'image de
conteneur
Enterprise Linux et la fonctionnalité HTTLD. Passons donc à autre chose
et voyons comment créer
réellement une image de
conteneur. Tout d'abord, créez un répertoire de
travail qui contient tous les fichiers nécessaires à la création de l'image
conteneur. Ensuite, nous créons un fichier Docker. Un fichier Docker est simplement un document
texte qui contient toutes les commandes qu'
un utilisateur peut appeler pour assembler une image. Enfin, nous utilisons la commande depots
man build. Nous utilisons la
commande Poll Man build pour créer
l'image en fonction du fichier docker et
d'autres ressources du répertoire de travail. Voyons maintenant
un exemple de Dockerfile et
voyons nos possibilités. Nous avons maintenant un Dockerfile
simple. Le champ De indique quelle image
Bates doit être étendue. Le champ d'étiquette
indique l'étiquette de cette image de
conteneur. Le Rosenfield exécute des commandes
dans l'image de base, le champ exposé expose les
ports du côté du conteneur. Le champ EM définit les variables d'
environnement
au sein du conteneur. Le champ Copier copie depuis le répertoire de travail
vers le conteneur. Le champ utilisateur définit l'utilisateur
sous lequel le conteneur est exécuté, car le champ d'ajout est
similaire au champ de copie. Le champ du point d'entrée indique la commande par laquelle le
conteneur commence. Et nous pouvons créer le
conteneur en analysant ce fichier Docker avec la commande
pod men build. Mettons donc toutes
ces connaissances en
pratique en passant
à la démo. Je vais maintenant commencer
cette démo en listant le contenu de mon répertoire de
travail. J'ai un
fichier index.html qui contient le
message hello world, et un fichier Docker prédéfini
que j'ai assemblé précédemment. Regardons-le. Il étend donc l'image sept de Red Hat
Enterprise Linux, l'utilisateur sous lequel le
conteneur s'exécute en tant que root. Il exécute une installation yum
moins y HTTPD+. Pour installer le service HTTDP, il expose le port 80 et
copie le fichier index.html depuis le répertoire de travail dans le chemin du conteneur slash var slash slash HTML
slash index.html. Maintenant, je vais utiliser
la
commande port man build pour créer mon image. Je spécifie l'option
minus d pour la balise, qui donnera à la mère mon image, le nom de mon image HTTDP. Maintenant, je vais utiliser la commande Pac-Man images pour voir si
l'image a été créée. Et nous pouvons le voir ici, localhost slash mon image HTTDP. Faisons maintenant un test. J'utiliserai la commande pot
man run en spécifiant que le conteneur s'
exécutera en mode détaché. Le nom de mon conteneur
sera Web App. Je vais rediriger le port 8082 vers le port 80
du conteneur, et j'utiliserai
ma propre image créée. Le conteneur
semble être opérationnel. La redirection de port
semble fonctionner. Faisons donc une boucle sur l'hôte
local sur le port 8082, et nous pouvons clairement voir
le message Bonjour tout le monde. Le fichier a donc été
copié avec succès. Nous allons entrer dans le conteneur
avec les options exec moins
i t de Pac-Man pour ouvrir un terminal
dans le conteneur. Comme vous pouvez le voir, le terminal
a été ouvert en tant que root. L'utilisateur que
je spécifie dans
le fichier Docker est donc utilisé et le fichier que nous avons copié
de l'hôte local vers le conteneur est présent. Le fichier Docker
s'est donc déroulé comme promis. Nous disposons d'un système d'exploitation Red
Hat Enterprise Linux seven conteneurisé fonctionnant
sur le service HTTDP. En terminant cette démonstration, nous avons également terminé notre cours intensif sur la gestion des
conteneurs. Je tiens à vous remercier pour votre présence et peut-être que nous nous
verrons dans
d'autres cours futurs. Merci beaucoup.