{"id":36772,"date":"2019-10-31T22:13:44","date_gmt":"2019-10-31T19:13:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ponimaya-docker\/"},"modified":"2019-10-31T22:13:44","modified_gmt":"2019-10-31T19:13:44","slug":"ponimaya-docker","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ponimaya-docker","title":{"rendered":"Comprendre Docker","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Depuis plusieurs mois, j'utilise Docker pour structurer le processus de d\u00e9veloppement \/ d\u00e9ploiement de projets web. Je propose aux lecteurs de \u00ab HabrHabr \u00bb la traduction d'un article d'introduction sur Docker \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/introduction\/understanding-docker\/\">\u00ab Understanding Docker \u00bb<\/a><\/noindex>.<\/i><\/p>\n<h3>Qu'est-ce que Docker ?<\/h3>\n<p>\nDocker est une plateforme ouverte pour d\u00e9velopper, livrer et faire fonctionner des applications. Docker est con\u00e7u pour un d\u00e9ploiement plus rapide de vos applications. Avec Docker, vous pouvez dissocier votre application de votre infrastructure et traiter l'infrastructure comme une application g\u00e9r\u00e9e. Docker permet de d\u00e9ployer votre code plus rapidement, de le tester plus rapidement, de d\u00e9ployer des applications plus rapidement et de r\u00e9duire le temps entre l'\u00e9criture et l'ex\u00e9cution du code. Docker r\u00e9alise cela gr\u00e2ce \u00e0 une plateforme l\u00e9g\u00e8re de virtualisation par conteneurs, utilisant des processus et des outils qui aident \u00e0 g\u00e9rer et d\u00e9ployer vos applications.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAu sein de son c\u0153ur, Docker permet de faire fonctionner pratiquement n'importe quelle application, isol\u00e9e en toute s\u00e9curit\u00e9 dans un conteneur. Cette isolation s\u00e9curis\u00e9e vous permet de faire fonctionner plusieurs conteneurs simultan\u00e9ment sur un seul h\u00f4te. La nature l\u00e9g\u00e8re du conteneur, qui fonctionne sans la surcharge suppl\u00e9mentaire d'un hyperviseur, vous permet d'exploiter davantage votre mat\u00e9riel.<\/p>\n<p>La plateforme et les outils de virtualisation de conteneurs peuvent \u00eatre utiles dans les cas suivants :<\/p>\n<ul>\n<li>emballer votre application (ainsi que ses composants utilis\u00e9s) dans des conteneurs Docker ;<\/li>\n<li>distribuer et livrer ces conteneurs \u00e0 vos \u00e9quipes pour le d\u00e9veloppement et les tests ;<\/li>\n<li>d\u00e9ployer ces conteneurs sur vos environnements de production, que ce soit dans des centres de donn\u00e9es ou dans le cloud.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u00c0 quoi puis-je utiliser Docker ?<\/h3>\n<p><\/p>\n<h4>D\u00e9ploiement rapide de vos applications<\/h4>\n<p>\nDocker est id\u00e9al pour organiser le cycle de d\u00e9veloppement. Docker permet aux d\u00e9veloppeurs d'utiliser des conteneurs locaux avec des applications et des services. Cela permet ensuite de s'int\u00e9grer dans le processus d'int\u00e9gration et de d\u00e9ploiement continus (continuous integration and deployment workflow).<\/p>\n<p>Par exemple, vos d\u00e9veloppeurs \u00e9crivent du code localement et partagent leur pile de d\u00e9veloppement (ensemble d'images Docker) avec leurs coll\u00e8gues. Lorsqu'ils sont pr\u00eats, ils envoient le code et les conteneurs vers un environnement de test et lancent tous les tests n\u00e9cessaires. Depuis l'environnement de test, ils peuvent envoyer le code et les images en production.<\/p>\n<h4>D\u00e9ploiement et d\u00e9ploiement simplifi\u00e9s<\/h4>\n<p>\nLa plateforme bas\u00e9e sur des conteneurs Docker permet de porter facilement votre charge utile. Les conteneurs Docker peuvent fonctionner sur votre machine locale, \u00e0 la fois sur une machine physique et sur une machine virtuelle dans un Data Center, ainsi que dans le cloud.<\/p>\n<p>La portabilit\u00e9 et la l\u00e9g\u00e8ret\u00e9 de Docker permettent de g\u00e9rer dynamiquement votre charge utile. Vous pouvez utiliser Docker pour d\u00e9ployer ou \u00e9teindre votre application ou vos services. La rapidit\u00e9 de Docker permet de faire cela presque en temps r\u00e9el.<\/p>\n<h4>Charges \u00e9lev\u00e9es et plus de charges utiles<\/h4>\n<p>\nDocker est l\u00e9ger et rapide. Il offre une alternative stable et rentable aux machines virtuelles bas\u00e9es sur hyperviseur. Il est particuli\u00e8rement utile dans des conditions de forte charge, par exemple lors de la cr\u00e9ation de votre propre cloud ou plateforme en tant que service. Mais il est \u00e9galement utile pour les applications petites et moyennes, lorsque vous souhaitez tirer davantage de vos ressources existantes.<\/p>\n<h3>Composants principaux de Docker<\/h3>\n<p>\nDocker se compose de deux composants principaux :<\/p>\n<ul>\n<li>Docker : plateforme de virtualisation open source ;<\/li>\n<li>Docker Hub : notre plateforme en tant que service pour la distribution et la gestion des conteneurs Docker.<\/li>\n<\/ul>\n<p>\n<i>Remarque ! Docker est distribu\u00e9 sous la licence Apache 2.0.<\/i><\/p>\n<h3>Architecture de Docker<\/h3>\n<p><\/p>\n<p>Docker utilise une architecture client-serveur. Le client Docker communique avec le d\u00e9mon Docker, qui prend en charge la cr\u00e9ation, le d\u00e9marrage et la distribution de vos conteneurs. Les deux, client et serveur peuvent fonctionner sur un m\u00eame syst\u00e8me, vous pouvez connecter le client \u00e0 un d\u00e9mon Docker distant. Le client et le serveur communiquent via un socket ou via une API RESTful.<\/p>\n<p><img decoding=\"async\" alt=\"Comprendre Docker\" src=\"\/wp-content\/uploads\/2019\/08\/eb67e625e776737163e49a41829ed102.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>D\u00e9mon Docker<\/h4>\n<p>\nComme montr\u00e9 sur le sch\u00e9ma, le d\u00e9mon s'ex\u00e9cute sur la machine h\u00f4te. L'utilisateur n'interagit pas directement avec le serveur, mais utilise le client pour cela.<\/p>\n<h4>Client Docker<\/h4>\n<p>\nLe client Docker, le programme docker, est l'interface principale avec Docker. Il re\u00e7oit des commandes de l'utilisateur et interagit avec le d\u00e9mon Docker.<\/p>\n<h4>\u00c0 l'int\u00e9rieur de Docker<\/h4>\n<p>\nPour comprendre de quoi se compose Docker, vous devez conna\u00eetre trois composants :<\/p>\n<ul>\n<li>images<\/li>\n<li>r\u00e9pertoires<\/li>\n<li>conteneurs<\/li>\n<\/ul>\n<h4>Images<\/h4>\n<p>\nUne image Docker est un mod\u00e8le en lecture seule. Par exemple, une image peut contenir le syst\u00e8me d'exploitation Ubuntu avec Apache et une application. Les images sont utilis\u00e9es pour cr\u00e9er des conteneurs. Docker facilite la cr\u00e9ation de nouvelles images, la mise \u00e0 jour des images existantes, ou vous pouvez t\u00e9l\u00e9charger des images cr\u00e9\u00e9es par d'autres. Les images constituent une composante de la construction de Docker.<\/p>\n<h4>Registre<\/h4>\n<p>\nLe registre Docker stocke des images. Il existe des registres publics et priv\u00e9s, \u00e0 partir desquels vous pouvez t\u00e9l\u00e9charger ou t\u00e9l\u00e9charger des images. Le registre Docker public est <noindex><a rel=\"nofollow\" href=\"http:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Il contient une vaste collection d'images. Comme vous le savez, les images peuvent \u00eatre cr\u00e9\u00e9es par vous ou vous pouvez utiliser des images cr\u00e9\u00e9es par d'autres. Les registres constituent une composante de la distribution.<\/p>\n<h4>Conteneurs<\/h4>\n<p>\nLes conteneurs ressemblent \u00e0 des r\u00e9pertoires. Les conteneurs contiennent tout ce dont une application a besoin pour fonctionner. Chaque conteneur est cr\u00e9\u00e9 \u00e0 partir d'une image. Les conteneurs peuvent \u00eatre cr\u00e9\u00e9s, d\u00e9marr\u00e9s, arr\u00eat\u00e9s, d\u00e9plac\u00e9s ou supprim\u00e9s. Chaque conteneur est isol\u00e9 et constitue une plateforme s\u00e9curis\u00e9e pour l'application. Les conteneurs repr\u00e9sentent une composante op\u00e9rationnelle.<\/p>\n<h4>Comment fonctionne Docker ?<\/h4>\n<p>\nPour l'instant, nous savons que :<\/p>\n<ul>\n<li>nous pouvons cr\u00e9er des images contenant nos applications ;<\/li>\n<li>nous pouvons cr\u00e9er des conteneurs \u00e0 partir d'images pour ex\u00e9cuter des applications ;<\/li>\n<li>nous pouvons distribuer des images via Docker Hub ou un autre registre d'images.<\/li>\n<\/ul>\n<p>\nExaminons comment ces composants s'assemblent.<\/p>\n<h4>Comment fonctionne une image ?<\/h4>\n<p>\nNous savons d\u00e9j\u00e0 qu'une image est un mod\u00e8le en lecture seule \u00e0 partir duquel un conteneur est cr\u00e9\u00e9. Chaque image est compos\u00e9e d'un ensemble de niveaux. Docker utilise <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/UnionFS\">le syst\u00e8me de fichiers union<\/a><\/noindex> pour combiner ces niveaux en une seule image. Le syst\u00e8me de fichiers union permet \u00e0 des fichiers et des r\u00e9pertoires issus de diff\u00e9rents syst\u00e8mes de fichiers (diff\u00e9rentes branches) d'\u00eatre superpos\u00e9s de mani\u00e8re transparente, cr\u00e9ant ainsi un syst\u00e8me de fichiers coh\u00e9rent.<\/p>\n<p>Une des raisons pour lesquelles Docker est l\u00e9ger est l'utilisation de ces niveaux. Lorsque vous modifiez une image, par exemple, en mettant \u00e0 jour une application, un nouveau niveau est cr\u00e9\u00e9. Ainsi, sans remplacer l'ensemble de l'image ou la reconstruire, comme vous pourriez \u00eatre amen\u00e9 \u00e0 le faire avec une machine virtuelle, seul le niveau est ajout\u00e9 ou mis \u00e0 jour. Et vous n'avez pas besoin de distribuer toute la nouvelle image, seulement la mise \u00e0 jour, ce qui facilite et acc\u00e9l\u00e8re la distribution des images.<\/p>\n<p>Chaque image est bas\u00e9e sur une image de base. Par exemple, ubuntu, l'image de base d'Ubuntu, ou fedora, l'image de base de la distribution Fedora. Vous pouvez \u00e9galement utiliser des images comme base pour cr\u00e9er de nouvelles images. Par exemple, si vous avez une image apache, vous pouvez l'utiliser comme image de base pour vos applications web.<\/p>\n<p><i>Remarque ! Docker r\u00e9cup\u00e8re g\u00e9n\u00e9ralement les images depuis le registre Docker Hub.<\/i><\/p>\n<p>Les images Docker peuvent \u00eatre cr\u00e9\u00e9es \u00e0 partir de ces images de base, les \u00e9tapes de cr\u00e9ation de ces images sont appel\u00e9es instructions. Chaque instruction cr\u00e9e une nouvelle image ou un niveau. Les instructions seront les actions suivantes :<\/p>\n<p><\/p>\n<ul>\n<li>ex\u00e9cution d'une commande<\/li>\n<li>ajout d'un fichier ou d'un r\u00e9pertoire<\/li>\n<li>cr\u00e9ation d'une variable d'environnement<\/li>\n<li>indication de ce qui doit \u00eatre ex\u00e9cut\u00e9 lors du lancement du conteneur de cette image<\/li>\n<\/ul>\n<p>Ces instructions sont stock\u00e9es dans un fichier <code>Dockerfile<\/code>. Docker lit cela, <code>Dockerfile<\/code>lorsque vous assemblez l'image, ex\u00e9cute ces instructions et retourne l'image finale.<\/p>\n<h4>Comment fonctionne le registre Docker ?<\/h4>\n<p>\nUn registre est un stockage d'images Docker. Apr\u00e8s avoir cr\u00e9\u00e9 une image, vous pouvez la publier sur un registre public Docker Hub ou sur votre propre registre.<\/p>\n<p>Avec le client Docker, vous pouvez rechercher des images d\u00e9j\u00e0 publi\u00e9es et les t\u00e9l\u00e9charger sur votre machine avec Docker pour cr\u00e9er des conteneurs.<\/p>\n<p>Docker Hub fournit des d\u00e9p\u00f4ts d'images publics et priv\u00e9s. La recherche et le t\u00e9l\u00e9chargement d'images \u00e0 partir de d\u00e9p\u00f4ts publics sont accessibles \u00e0 tous. Le contenu des d\u00e9p\u00f4ts priv\u00e9s n'appara\u00eet pas dans les r\u00e9sultats de recherche. Seuls vous et vos utilisateurs pouvez acc\u00e9der \u00e0 ces images et cr\u00e9er des conteneurs \u00e0 partir d'elles.<\/p>\n<h4>Comment fonctionne un conteneur ?<\/h4>\n<p>\nUn conteneur se compose du syst\u00e8me d'exploitation, des fichiers d'utilisateur et des m\u00e9tadonn\u00e9es. Comme nous le savons, chaque conteneur est cr\u00e9\u00e9 \u00e0 partir d'une image. Cette image indique \u00e0 Docker ce qu'il y a dans le conteneur, quel processus d\u00e9marrer lorsque le conteneur est lanc\u00e9 et d'autres donn\u00e9es de configuration. L'image Docker est en lecture seule. Lorsque Docker lance un conteneur, il cr\u00e9e un niveau en lecture\/\u00e9criture au-dessus de l'image (en utilisant un syst\u00e8me de fichiers union, comme mentionn\u00e9 pr\u00e9c\u00e9demment), o\u00f9 une application peut \u00eatre ex\u00e9cut\u00e9e.<\/p>\n<h4>Que se passe-t-il lorsqu'un conteneur est lanc\u00e9 ?<\/h4>\n<p>\nSoit via un programme <code>docker<\/code>, soit par le biais de l'API RESTful, le client Docker indique au d\u00e9mon Docker de lancer le conteneur.<\/p>\n<p><code>$ sudo docker run -i -t ubuntu \/bin\/bash<br \/>\n<\/code><br \/>\nD\u00e9composons cette commande. Le client est lanc\u00e9 avec la commande <code>docker<\/code>, avec l'option <code>run<\/code>, qui indique qu'un nouveau conteneur sera lanc\u00e9. Les exigences minimales pour d\u00e9marrer un conteneur sont les suivantes\u00a0:<\/p>\n<ul>\n<li>quelle image utiliser pour cr\u00e9er le conteneur. Dans notre cas, <code>ubuntu<\/code><\/li>\n<li>la commande que vous souhaitez ex\u00e9cuter lorsque le conteneur est lanc\u00e9. Dans notre cas, <code>\/bin\/bash<\/code><\/li>\n<\/ul>\n<p>Que se passe-t-il sous le capot lorsque nous ex\u00e9cutons cette commande ?<\/p>\n<p>Docker, dans l'ordre, fait ce qui suit :<\/p>\n<ul>\n<li><b>t\u00e9l\u00e9charge l'image ubuntu :<\/b> Docker v\u00e9rifie la pr\u00e9sence de l'image <code>ubuntu<\/code> sur la machine locale, et si elle n'est pas pr\u00e9sente, il la t\u00e9l\u00e9charge depuis <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Si l'image est pr\u00e9sente, il l'utilise pour cr\u00e9er le conteneur ;<\/li>\n<li><b>cr\u00e9e le conteneur :<\/b> une fois l'image obtenue, Docker l'utilise pour cr\u00e9er le conteneur ;<\/li>\n<li><b>initialise le syst\u00e8me de fichiers et monte un niveau en lecture seule :<\/b> le conteneur est cr\u00e9\u00e9 dans le syst\u00e8me de fichiers et un niveau en lecture seule est ajout\u00e9 \u00e0 l'image ;<\/li>\n<li><b>initialise le r\u00e9seau \/ pont :<\/b> cr\u00e9e une interface r\u00e9seau qui permet \u00e0 Docker de communiquer avec l'h\u00f4te ;<\/li>\n<li><b>Assignation d'une adresse IP :<\/b> trouve et attribue une adresse ;<\/li>\n<li><b>Lance le processus sp\u00e9cifi\u00e9 :<\/b> lance votre application ;<\/li>\n<li><b>Traite et \u00e9met la sortie de votre application :<\/b> se connecte et enregistre l'entr\u00e9e standard, la sortie et le flux d'erreurs de votre application, afin que vous puissiez suivre le fonctionnement de votre application.<\/li>\n<\/ul>\n<p>\nVous avez maintenant un conteneur op\u00e9rationnel. Vous pouvez g\u00e9rer votre conteneur et interagir avec votre application. Lorsque vous d\u00e9cidez d'arr\u00eater l'application, supprimez le conteneur.<\/p>\n<h3>Technologies utilis\u00e9es<\/h3>\n<p>\nDocker est \u00e9crit en Go et utilise certaines fonctionnalit\u00e9s du noyau Linux pour r\u00e9aliser la fonctionnalit\u00e9 d\u00e9crite ci-dessus.<\/p>\n<h4>Espaces de noms (namespaces)<\/h4>\n<p>\nDocker utilise la technologie <code>namespaces<\/code> pour organiser des espaces de travail isol\u00e9s, que nous appelons des conteneurs. Lorsque nous lan\u00e7ons un conteneur, Docker cr\u00e9e un ensemble d'espaces de noms pour ce conteneur.<\/p>\n<p>Cela cr\u00e9e un niveau d'isolation, chaque aspect du conteneur est ex\u00e9cut\u00e9 dans son propre espace de noms et n'a pas acc\u00e8s au syst\u00e8me externe.<\/p>\n<p>Voici une liste de certains espaces de noms utilis\u00e9s par Docker :<\/p>\n<ul>\n<li><b>pid :<\/b> pour l'isolation des processus ;<\/li>\n<li><b>net :<\/b> pour g\u00e9rer les interfaces r\u00e9seau ;<\/li>\n<li><b>ipc :<\/b> pour g\u00e9rer les ressources IPC (IPC : InterProcess Communication) ;<\/li>\n<li><b>mnt :<\/b> pour g\u00e9rer les points de montage ;<\/li>\n<li><b>utc :<\/b> pour isoler le noyau et contr\u00f4ler la g\u00e9n\u00e9ration de versions (UTC : syst\u00e8me d'allocation de temps Unix).<\/li>\n<\/ul>\n<h4>Groupes de contr\u00f4le (control groups)<\/h4>\n<p>\nDocker utilise \u00e9galement la technologie <code>cgroups<\/code> ou les groupes de contr\u00f4le. La cl\u00e9 du fonctionnement de l'application en isolation est de fournir \u00e0 l'application uniquement les ressources que vous souhaitez lui attribuer. Cela garantit que les conteneurs seront de bons voisins. Les groupes de contr\u00f4le permettent de diviser les ressources disponibles du mat\u00e9riel et, si n\u00e9cessaire, d'imposer des limites et des restrictions. Par exemple, limiter la quantit\u00e9 de m\u00e9moire qu'un conteneur peut utiliser.<\/p>\n<h4>Syst\u00e8me de fichiers Union<\/h4>\n<p>\nLe Syst\u00e8me de fichiers Union ou UnionFS est un syst\u00e8me de fichiers qui fonctionne en cr\u00e9ant des couches, ce qui le rend tr\u00e8s l\u00e9ger et rapide. Docker utilise UnionFS pour cr\u00e9er les blocs \u00e0 partir desquels le conteneur est construit. Docker peut utiliser plusieurs variantes de UnionFS, y compris : AUFS, btrfs, vfs et DeviceMapper.<\/p>\n<h4>Formats de conteneurs<\/h4>\n<p>\nDocker combine ces composants dans un emballage que nous appelons le format de conteneur. Le format utilis\u00e9 par d\u00e9faut s'appelle <code>libcontainer<\/code>. Docker prend \u00e9galement en charge le format traditionnel des conteneurs sous Linux gr\u00e2ce \u00e0 <noindex><a rel=\"nofollow\" href=\"http:\/\/linuxcontainers.org\">LXC<\/a><\/noindex>. \u00c0 l'avenir, Docker pourrait prendre en charge d'autres formats de conteneurs, par exemple en s'int\u00e9grant avec les BSD Jails ou les Solaris Zones.<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/253877\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e docker \u2014 \u00abUnderstanding docker\u00bb. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u043e\u043a\u0435\u0440? \u0414\u043e\u043a\u0435\u0440 \u2014 \u044d\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. Docker \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e docker \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36772","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:44+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Comprendre Docker | ProHoster","description":"J'utilise Docker depuis plusieurs mois pour structurer le processus de d\u00e9veloppement \/ livraison de projets web.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ponimaya-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u043d\u0438\u043c\u0430\u044f Docker | ProHoster","og:description":"\u0423\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e docker \u0434\u043b\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\/\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ponimaya-docker","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:44+00:00","article:modified_time":"2019-10-31T19:13:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36772","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:47:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:39:22","updated":"2026-01-22 04:47:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=36772"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/36772\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=36772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=36772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=36772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}