‫Bonjour.
‫Cette vidéo a deux raisons.
‫Premièrement, c'est au cas où vous ne voulez pas exécuter Docker localement.
‫Vous voulez exécuter Docker sur un serveur à distance, que ce soit pour la production, une autre utilisation du serveur, ou simplement
‫parce que vous ne pouvez pas exécuter Docker localement pour des raisons de ressources de performance de licence, vous savez que vous n'êtes pas administrateur
‫local.
‫Il peut y avoir toutes sortes de raisons.
‫Il s'agit donc du moteur Docker pour les serveurs Linux.
‫La raison pour laquelle je dis que c'est un moteur et des serveurs sont des composants clés que nous aborderons tout au long de cette vidéo.
‫Cette vidéo va se concentrer sur l'installation de la version la plus récente de Docker à partir de l'emplacement correct, ce
‫qui est différent de vos gestionnaires de paquets Linux par défaut.
‫Nous nous assurerons ensuite que l'alimentation est installée à l'endroit d'où vous allez l'exploiter afin de ne pas avoir
‫à vous connecter au serveur pendant tout ce temps.
‫Nous allons en fait le configurer pour pouvoir le contrôler à distance. Quelle est la meilleure façon d'exécuter
‫un moteur Docker sur un serveur Linux ?
‫Et un petit avertissement, si vous n'avez pas regardé la vidéo précédente, qui traite du
‫bureau Docker pour les bureaux Linux, ce n'est pas cela.
‫C'était avant que nous ayons le bureau de Docker, nous avions juste le moteur de Docker.
‫Chaque bureau Docker contient un moteur Docker.
‫Il le gère pour vous, mais le moteur Docker, c'est un seul binaire appelé Docker D ou le Docker Daemon, et qui peut fonctionner
‫sur n'importe quel serveur Linux.
‫Tant que vous avez un noyau Linux, vous pouvez exécuter la même chose.
‫Vous pouvez l'exécuter sur un serveur Windows, le Docker RD ESXi qui pourrait en fait fonctionner comme un service sur un serveur Windows pour exécuter
‫les conteneurs Windows.
‫Mais nous n'allons pas en parler dans cette vidéo.
‫Le bureau Docker, qui s'exécute sur votre système local, ne sert qu'à l'utilisation locale de Docker.
‫Mais c'est le moteur Docker qui peut fonctionner sur n'importe quel système Linux, qu'il soit local ou distant,
‫qu'il s'agisse d'une VM ou d'un serveur physique, d'un Raspberry Pi, etc.
‫S'il exécute un noyau Linux, il est dans la liste et Docker dispose d'une liste compatible de constructions testées et prises
‫en charge qui fonctionnent.
‫Il ne s'agit pas de toutes les distributions Linux existantes.
‫Il n'inclut pas BSD, qui n'est pas techniquement Linux, et il se concentre vraiment sur les
‫grands, vous savez, le Central West, le Red Hat, Ubuntu, Debian, ce genre de choses.
‫Et il y a plusieurs architectures qu'il supportera.
‫Ainsi, comme référence dans cette vidéo, vous verrez le lien vers cette page qui vous montre la liste des distributions
‫Linux actuellement prises en charge pour le moteur.
‫Je vais bien sûr utiliser Docker sur Ubuntu, ma distribution Linux préférée pour les serveurs, et je vais vous guider dans cette
‫démarche.
‫Je vais passer sous silence les détails parce que vous allez simplement lire ceci ou exécuter le script, ce
‫dont nous parlerons ensuite.
‫Maintenant, oui, je vous donne des liens comme ressources de cette vidéo pour toute la documentation autour de toutes les façons
‫de l'installer sur des variantes de Linux, des distributions comme Ubuntu, Fedora et toutes les autres.
‫Mais la façon la plus simple de le faire est d'exécuter un script.
‫Si vous tapez dans votre navigateur, obtenez Docker.
‫Cela vous donnera un script shell que vous pouvez regarder, télécharger et exécuter automatiquement.
‫Avec Curl, il s'agit essentiellement de vous fournir les bons paramètres et de désinstaller les anciennes choses, d'installer les nouvelles,
‫de s'assurer que vous obtenez les bonnes sources et tout ça en une seule fois.
‫C'est ainsi que j'ai toujours installé Docker, depuis que j'en ai entendu parler, au début
‫du projet.
‫Donc, peut-être que pour l'apprentissage, peut-être que la première fois que vous installez Docker sur un serveur Linux, vous allez suivre
‫la documentation qui passe étape par étape avec votre gestionnaire de paquets.
‫Peut-être que c'est apt, peut-être que c'est yum, peut-être que c'est APK, tout dépend de ce que vous faites sur votre distro Linux.
‫Mais je vais utiliser ce script, qui est plus facile.
‫Il s'agit essentiellement de condenser le script dans un fichier, puis d'exécuter ce fichier avec un shell.
‫Et c'est exactement ce que ce script, si vous allez à la dernière diapositive, il vous dirait de copier et coller cela et
‫de le copier vers le bas et puis de l'exécuter.
‫Nous faisons donc cela et il déterminera sur quelle distribution je suis, quelle version de cette
‫distribution, si elle est supportée, il se connectera dans ce cas à apt au gestionnaire de paquets avec la clé pour s'assurer
‫que vous obtenez la bonne.
‫pour votre installation, puis cette commande s'exécute pendant quelques minutes en fonction de la vitesse de votre
‫serveur.
‫Et vous vous retrouvez à l'invite de votre shell avec la ligne de commande Docker, le moteur Docker ou
‫Daemon et quelques autres utilitaires.
‫En général, il est livré avec des modules d'extension, comme le kit de construction d'images ou la fonction de composition.
‫Nous aborderons tout cela pendant le cours.
‫Réalisez donc qu'il y a peut-être quatre ou cinq binaires flottant dans votre système.
‫Maintenant, comme toutes les autres façons d'installer Docker, faites une commande Docker space version, tapez
‫cette commande dans votre shell, et vous devriez obtenir au moins le client en ligne de commande et la version serveur.
‫Lorsque vous obtenez la version du serveur, cela signifie que vous êtes en mesure de parler à l'API du serveur.
‫Si vous êtes sur le shell du serveur, alors il parle techniquement aux hôtes locaux en utilisant un socket.
‫Je veux juste vous rappeler que tout ce que vous venez de faire là est open source, le moteur Docker,
‫la ligne de commande Docker, tous les plug-ins là.
‫Ils sont tous entièrement open source.
‫Le bureau Docker sous licence Apache, cependant, d'après les vidéos précédentes, comprend tous ces éléments
‫ainsi que les logiciels à source fermée ou sous licence de Docker.
‫Le bureau Docker est bien plus un super ensemble de plusieurs choses différentes.
‫Le moteur Docker que nous installons ici est juste le strict minimum.
‫C'est le démon dont vous avez besoin pour exécuter un conteneur dans Docker.
‫Et pour rappel, comme je l'ai fait dans les vidéos précédentes, si vous utilisez la commande Docker login parce que vous
‫n'avez qu'un accès en ligne de commande ici, si vous tapez Docker space, log in, vous pouvez vous connecter
‫avec votre ID Docker et cela vous permettra d'obtenir plus de pools.
‫Si vous vous souvenez, les piscines sont les objets des premières vidéos de ce cours qui contiennent le logiciel.
‫Vous tirez l'image, puis vous l'exécutez en tant que conteneur et vous le faites un certain nombre de fois.
‫Et Docker peut éventuellement se plaindre et dire : " Hé, écoutez, vous avez dépassé et je pense que le
‫nombre actuel est de 106 heures.
‫Ça dit que vous avez dépassé le nombre de piscines.
‫Si vous êtes derrière un pare-feu d'entreprise, que tous les employés de votre société utilisent Docker et qu'ils
‫sont tous derrière une seule adresse IP, cette limite peut être atteinte assez rapidement.
‫Mais si vous vous connectez simplement, Docker vous donne au moins le double de pouls pour rien avec le compte gratuit si vous payez
‫pour Docker, ce que vous n'êtes pas obligé de faire avec ce cours, mais si vous vouliez
‫payer pour un abonnement à Docker, vous auriez, je pense, des pools illimités tant que vous vous connectez
‫avec ce compte.
‫Mais passons au contrôle local de ce démon.
‫Maintenant, ce qui va se passer ici, c'est que quel que soit le système que vous allez utiliser, disons qu'il s'agit d'une configuration
‫de serveur, ou il se pourrait simplement que vous ne vouliez pas exécuter Docker sur votre machine locale.
‫Peut-être que tu n'as pas le droit, peut-être que tu ne peux pas.
‫Peut-être que vous n'avez pas assez de ressources.
‫Peut-être que vous n'êtes pas root sur votre machine locale.
‫Mais vous avez la possibilité d'exécuter Docker sur cette machine distante.
‫Vous n'avez pas besoin de vous asseoir dans le shell de cette machine distante, d'y taper toutes vos commandes, d'y faire
‫tout votre travail sur le code source ou de cloner le dépôt pour ce cours.
‫Vous ne pouvez rien y faire.
‫Vous pouvez ignorer cela.
‫Vous pouvez y installer Docker et nous allons lui parler à distance.
‫Maintenant, revenons en arrière une seconde.
‫Il y a quelques années, avant que cette fonctionnalité de tunnel SSH n'existe, vers 2018, vous deviez soit vous
‫connecter au serveur et tout faire sur le serveur, ce qui est parfois pénible car vous devez alors
‫copier vos données et ce n'est pas génial.
‫Vous avez tout le reste localement, vous avez votre éditeur de code, peut-être que vous utilisez Visual
‫Studio code et vous avez votre code source pour cette classe et vous avez des choses ici, non ?
‫L'idéal est donc de faire tout ce travail sur votre machine locale.
‫Docker a résolu ce problème lors de sa sortie en 2013.
‫Le seul moyen d'y parvenir était de passer par un port TCP, qui ne possède pas d'authentification intégrée
‫et qui, par défaut, ne fournit pas de cryptage pour la connexion.
‫Il était donc généralement considéré comme un mauvais moyen de se connecter à Docker.
‫C'était quelque chose que vous ne vouliez faire que sur des réseaux sûrs, et surtout parce que ce n'était pas authentifié.
‫Il pourrait techniquement vous permettre d'accéder à distance à la racine d'un serveur si vous vous connectiez simplement de n'importe
‫quel endroit ayant accès à ce port, c'est une mauvaise idée.
‫Docker a donc ajouté cette nouvelle fonctionnalité intégrée qui permet d'établir une connexion SSH transparente, à condition que vous puissiez vous connecter
‫à ce serveur par SSH et que vous disposiez d'une authentification ou d'un certificat, de préférence pour vous connecter à ce serveur par
‫SSH.
‫Vous pouvez le faire sans avoir à sauter à travers des cerceaux ou à exposer des ports supplémentaires.
‫C'est donc ce que nous allons faire.
‫L'étape suivante consiste à installer le client de ligne de commande Docker sur le système à partir duquel
‫vous allez travailler, qu'il s'agisse de Windows, Mac, Linux, Raspberry, PI ou autre.
‫Il suffit de prendre le client en ligne de commande si vous êtes sur un Mac.
‫Étonnamment, le programme d'installation de Brew, qui, si vous ne connaissez pas Brew, vous fait manquer le
‫meilleur programme d'installation pour Mac et Brew install Docker, n'installe pas vraiment le moteur Docker complet ou le bureau Docker.
‫Il installe seulement le client parce qu'ils sont.
‫Il n'y a pas de moteur Docker pour Mac.
‫Les noyaux Mac ne supportent pas les conteneurs, donc l'installation surprend en installant seulement une ligne de commande, ce qui dans ce
‫cas est ce que nous voulons.
‫Si votre machine locale est Linux, vous pouvez utiliser le paquet d'installation Linux de
‫la documentation de Docker et, une fois ce paquet configuré comme dépôt, vous pouvez installer le paquet Docker
‫CCI à partir de ce dépôt.
‫Enfin, si vous êtes sous Windows, vous avez peut-être entendu parler de Chocolaty.
‫C'est l'un des gestionnaires de paquets pour Windows de nos jours.
‫Et vous pouvez faire une installation chocolatée pour installer uniquement le client en ligne de commande.
‫Mais Docker a également expliqué tout cela dans sa documentation où il vous explique comment obtenir les bibliothèques
‫client pour votre système d'exploitation et juste la bibliothèque client.
‫Ok.
‫Le moment de vérité.
‫Vous avez installé le moteur Docker sur un serveur Linux.
‫Indépendamment de l'usage que vous allez en faire, que ce soit juste pour vous entraîner ou pour une production
‫réelle, vous avez Docker sur le serveur, vous avez maintenant le client sur Southern, votre machine locale.
‫Je dois vous rappeler que tout ce que je viens de vous dire à propos de l'installation du client, si vous avez déjà
‫installé Docker desktop, vous n'avez pas besoin de le faire.
‫Docker desktop est livré avec le client, mais nous pouvons indiquer au client où pointer pour parler au moteur du serveur
‫et c'est ce que nous allons faire maintenant.
‫Imaginez donc que je puisse entrer dans un serveur avec quelque chose comme cette commande ici, ssh route à une adresse IP ou un
‫nom d'hôte.
‫Et disons que j'ai un certificat SSH.
‫Tout ceci suppose donc que vous compreniez les bases de SSH et que vous sachiez comment obtenir un certificat sur un serveur
‫afin de pouvoir vous connecter à distance.
‫Il existe des tonnes de tutoriels à ce sujet et ces connaissances sont supposées.
‫Là encore, il faut avoir des connaissances de base de Linux avant de se lancer dans l'aventure Docker.
‫Donc, en supposant que nous pouvons le faire, si j'ai cet accès, alors tout ce que je dois faire est de créer une variable d'environnement.
‫La variable d'environnement Docker underscore host indique à la ligne de commande Docker à quel serveur elle doit s'adresser
‫par défaut.
‫Si vous installez simplement Docker sur quelque chose et commencez à utiliser la ligne de commande, il suppose le socket
‫local ou l'hôte local.
‫Et donc il n'y a même pas cette variable d'environnement.
‫Et par défaut, si elle est vide, cette variable d'environnement, même si Docker essaie
‫de la rechercher et qu'il n'en trouve pas, il dira, ok, vous devez supposer que je dois parler à l'hôte
‫local et il le fera très bien.
‫Mais si nous changeons cela en ajoutant une exportation docker host equals ssh colon slash slash juste comme vous utiliseriez
‫dans une URL https.
‫Donc si nous remplaçons cela par ssh colon's slash username at hostname, alors je peux me lancer dans Docker en tapant simplement des commandes
‫Docker normales.
‫Vous remarquerez donc que je tape une version de Docker ici, mais que Docker ne tourne pas sur ma machine locale.
‫J'ai juste ce client Docker et il est déjà en train de se connecter par SSH via Internet à cette instance de nuage distante que je viens de
‫configurer il y a quelques instants et il renvoie la version du serveur ainsi que la version du client.
‫Si vous commencez à fouiller, vous verrez que je suis sur Darwin, qui est Mac OS pour mon client,
‫et si on fait défiler vers le bas le serveur montre Linux parce que c'est là que le serveur fait tourner
‫le moteur et c'est tout.
‫C'est tout ce que vous devez faire.
‫Si vous souhaitez désactiver la variable d'environnement Docker underscore host, votre ligne de commande Docker reviendra à votre
‫machine locale, en supposant que le moteur fonctionne localement et que vous pouvez passer de l'un
‫à l'autre.
‫En fait, vous pourriez avoir un tas de serveurs différents et changer la variable d'environnement dans chaque
‫shell que vous utilisez pour lui indiquer à quel serveur parler.
‫Il existe une commande de contexte Docker qui peut également faire cela.
‫Nous ne parlerons pas encore de ça.
‫Il s'agit d'un sujet plus avancé qui sera abordé plus tard dans le cours, mais il existe techniquement une commande intégrée
‫appelée Docker context qui vous permet d'enregistrer ces paramètres et de gérer une liste de différents moteurs avec lesquels vous souhaitez communiquer.
‫Mais celui-ci est idéal pour commencer, et la dernière étape consiste à cloner localement votre dépôt pour ce cours,
‫celui qui est mentionné quelques cours plus tôt dans les cours écrits où il y a le dépôt du cours que vous téléchargez,
‫vous devez le mettre sur votre machine locale avec votre éditeur de code et tout le reste
‫et le client Docker.
‫La seule chose qui se trouvera sur le serveur sera le moteur que nous avons installé et nous n'aurons
‫pas besoin de nous y connecter en permanence, car toutes les commandes Docker que nous exécutons localement seront exécutées sur ce
‫serveur distant.
‫Ce serveur distant.
‫Au fait, n'oubliez pas que lorsque je tape l'hôte local dans mon navigateur pour tester des choses dans Docker, comme un site Web
‫ou quelque chose que nous exécutons dans Docker, vous n'allez pas taper l'hôte local, vous allez
‫taper le nom d'hôte du serveur ou l'adresse IP sur lequel vous avez installé Docker.
‫C'est la machine qui fait tourner le moteur, qui fait tourner vos conteneurs, et que vous devrez taper dans
‫votre navigateur.
‫Ou si vous exécutez d'autres commandes locales comme curl ou ping, vous devrez le faire pour
‫l'adresse IP du serveur et c'est tout.
‫Vous avez maintenant un moteur qui tourne sur un serveur Linux quelque part dans le monde.
‫Vous êtes sur votre système local avec votre code, votre dépôt et tout le reste, et vous êtes prêt
‫à commencer.