{"id":31641,"date":"2019-10-31T21:42:19","date_gmt":"2019-10-31T18:42:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da\/"},"modified":"2019-10-31T21:42:19","modified_gmt":"2019-10-31T18:42:19","slug":"docker-eto-igrushka-ili-net-ili-vsyo-taki-da","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","title":{"rendered":"Docker \u2014 est-ce un jouet ou pas ? Ou finalement oui ?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bonjour \u00e0 tous !<\/p>\n<p><\/p>\n<p>J'aimerais vraiment me plonger imm\u00e9diatement dans le sujet, mais il serait plus appropri\u00e9 de vous parler un peu de mon histoire :<\/p>\n<p><\/p>\n<h2>Introduction<\/h2>\n<p><\/p>\n<p>Je suis d\u00e9veloppeur avec une exp\u00e9rience dans le d\u00e9veloppement d'applications \u00e0 page unique en frontend, scala\/java et nodejs c\u00f4t\u00e9 serveur. <\/p>\n<p><\/p>\n<p>Pendant longtemps (cela fait certainement deux ou trois ans), je pensais que Docker \u00e9tait une b\u00e9n\u00e9diction et un outil super cool, et que chaque d\u00e9veloppeur devrait savoir s'en servir. Et donc, cela en d\u00e9coule que chaque d\u00e9veloppeur doit avoir Docker install\u00e9 sur sa machine locale. Que dire de mon opinion, parcourez les offres d'emploi publi\u00e9es sur mon emploi. Dans une sur deux, il y a mention de Docker et si vous en avez la ma\u00eetrise, cela sera un avantage concurrentiel \ud83d\ude09<\/p>\n<p><\/p>\n<p>Dans mon parcours, j'ai rencontr\u00e9 de nombreuses personnes avec des attitudes diff\u00e9rentes envers Docker et son \u00e9cosyst\u00e8me. Certains disaient que c'\u00e9tait un outil pratique, garantissant la cross-plateforme. D'autres ne comprenaient pas pourquoi ils devraient s'ex\u00e9cuter dans des conteneurs et quel en \u00e9tait le b\u00e9n\u00e9fice, d'autres s'en fichaient compl\u00e8tement et ne se pr\u00e9occupaient pas (ils \u00e9crivaient simplement du code et rentraient chez eux \u2014 je les envie, d'ailleurs \ud83d\ude42)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Raisons d'utilisation<\/h2>\n<p><\/p>\n<p>Pourquoi ai-je utilis\u00e9 Docker ? Probablement pour les raisons suivantes :<\/p>\n<p><\/p>\n<ul>\n<li>lancer des bases de donn\u00e9es, 99 % des applications en utilisent<\/li>\n<li>lancer Nginx pour servir le frontend et faire le proxy vers le backend<\/li>\n<li>je peux emballer l'application dans une image Docker, de cette mani\u00e8re mon application fonctionnera partout o\u00f9 Docker est pr\u00e9sent, le probl\u00e8me de distribution est r\u00e9solu imm\u00e9diatement<\/li>\n<li>d\u00e9couverte de services int\u00e9gr\u00e9e, je peux cr\u00e9er des microservices, chaque conteneur (connect\u00e9 \u00e0 un r\u00e9seau commun) peut facilement acc\u00e9der \u00e0 un autre par alias, c'est tr\u00e8s pratique<\/li>\n<li>C'est amusant de cr\u00e9er un conteneur et de \u00ab jouer \u00bb avec.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Ce que je n'ai jamais aim\u00e9 dans Docker :<\/h2>\n<p><\/p>\n<ul>\n<li>pour que mon application fonctionne, Docker lui-m\u00eame doit \u00eatre install\u00e9 sur le serveur. Pourquoi en ai-je besoin, si mes applications fonctionnent sur JRE ou Node.js et que l'environnement pour elles est d\u00e9j\u00e0 pr\u00e9sent sur le serveur ?<\/li>\n<li>si je veux lancer ma propre image (priv\u00e9e) construite localement sur un serveur distant, j'ai besoin de mon propre d\u00e9p\u00f4t Docker, il faut qu'il y ait un registre fonctionnant quelque part et il faut aussi configurer HTTPS, car Docker CLI ne fonctionne que par HTTPS. Oh mince... il y a des options, bien s\u00fbr, pour sauvegarder l'image localement via <code>docker save<\/code> et via scp, il suffit de transf\u00e9rer l'image... mais cela demande beaucoup de manipulations. Et cela semble aussi \u00eatre une solution \u00ab bricol\u00e9e \u00bb, tant que l'on n'a pas son propre d\u00e9p\u00f4t.<\/li>\n<li><code>docker-compose<\/code>. Il est uniquement destin\u00e9 \u00e0 ex\u00e9cuter des conteneurs. C'est tout. Il ne peut rien faire d'autre. <code>Docker-compose<\/code> a de nombreuses versions de ses fichiers, sa propre syntaxe. Quel que soit son degr\u00e9 de d\u00e9claration, je ne veux pas lire leur documentation. Elle ne me sera plus utile ailleurs.<\/li>\n<li>lorsque je travaille en \u00e9quipe, la plupart du temps les gens \u00e9crivent des Dockerfile de mani\u00e8re tr\u00e8s maladroite, ne comprennent pas comment cela est mis en cache, ajoutent \u00e0 l'image tout ce qu'il faut et ce qu'il ne faut pas, h\u00e9ritent d'images qui ne sont pas sur dockerhub ou dans un d\u00e9p\u00f4t priv\u00e9, cr\u00e9ent des <code>docker-compose<\/code> les fichiers avec les bases de donn\u00e9es et rien ne persiste. En m\u00eame temps, les d\u00e9veloppeurs d\u00e9clarent fi\u00e8rement que Docker est g\u00e9nial, que tout fonctionne localement, et les RH insistent dans les offres d'emploi : \u00ab Nous utilisons Docker et nous avons besoin d'un candidat avec cette exp\u00e9rience. \u00bb<\/li>\n<li>pensent toujours \u00e0 d\u00e9ployer tout et n'importe quoi dans docker : postgresql, kafka, redis. Dommage que tout ne fonctionne pas dans des conteneurs, que tout ne soit pas facile \u00e0 configurer et \u00e0 d\u00e9marrer. Cela est soutenu par des d\u00e9veloppeurs tiers, pas par les fournisseurs eux-m\u00eames. Et au fait, cela pose imm\u00e9diatement la question : si les fournisseurs ne se soucient pas de maintenir leurs produits dans docker, pourquoi le font-ils ? Peut-\u00eatre qu'ils en savent quelque chose ?<\/li>\n<li>la question de la persistance des donn\u00e9es du conteneur se pose toujours. Et l\u00e0 on se dit, devrais-je simplement monter un r\u00e9pertoire h\u00f4te ou cr\u00e9er un volume docker ou faire un conteneur de donn\u00e9es qui maintenant <code>d\u00e9pr\u00e9ci\u00e9<\/code>? \u0415\u0441\u043b\u0438 \u044f \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0442\u043e \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0447\u0442\u043e uid \u0438 gid \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 id \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u0438\u043d\u0430\u0447\u0435 \u0444\u0430\u0439\u043b\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 root. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e <code>volume<\/code> donne simplement que les donn\u00e9es seront cr\u00e9\u00e9es dans un quelconque <code>\/usr\/*<\/code> et il en sera de m\u00eame avec le uid et gid comme dans le premier cas. Si vous lancez un composant tiers, il faut lire la documentation et chercher la r\u00e9ponse \u00e0 la question : \u00ab dans quels r\u00e9pertoires du conteneur le composant \u00e9crit-il des fichiers ? \u00bb<\/li>\n<\/ul>\n<p>Je n'ai jamais aim\u00e9 devoir passer trop de temps avec docker. <strong>au d\u00e9part<\/strong>: je pensais \u00e0 comment lancer des conteneurs, de quelles images je devais partir, je cr\u00e9ais des Makefile qui contenaient des alias pour de longues commandes docker. Je ne supportais pas docker-compose parce que je ne voulais pas apprendre un autre outil de l'\u00e9cosyst\u00e8me docker. Et <code>docker-compose up<\/code> cela me stressait, surtout si l'on rencontrait encore <code>build<\/code> des constructions, et non des images d\u00e9j\u00e0 construites. Tout ce que je voulais vraiment, c'\u00e9tait de faire le produit de mani\u00e8re efficace et rapide. Mais je n'arrivais pas \u00e0 mettre en ordre l'utilisation de docker.<\/p>\n<p><\/p>\n<h2>D\u00e9couverte d'Ansible<\/h2>\n<p><\/p>\n<p>R\u00e9cemment (il y a trois mois), j'ai travaill\u00e9 avec une \u00e9quipe DevOps, presque chaque membre de l'\u00e9quipe avait une opinion n\u00e9gative sur docker. Pour les raisons :<\/p>\n<p><\/p>\n<ul>\n<li>Docker g\u00e8re iptables (bien qu'il soit possible de le d\u00e9sactiver dans daemon.json)<\/li>\n<li>Nous n'allons pas ex\u00e9cuter Docker en production<\/li>\n<li>Si le d\u00e9mon Docker \u00e9choue, tous les conteneurs d'infrastructure \u00e9chouent \u00e9galement<\/li>\n<li>Docker n'est pas indispensable<\/li>\n<li>Pourquoi utiliser Docker quand on a Ansible et des machines virtuelles ?<\/li>\n<\/ul>\n<p><\/p>\n<p>Au m\u00eame travail, j'ai d\u00e9couvert un autre outil : Ansible. J'en avais d\u00e9j\u00e0 entendu parler, mais je n'avais jamais essay\u00e9 d'\u00e9crire mes propres playbooks. Maintenant, j'ai commenc\u00e9 \u00e0 \u00e9crire mes propres t\u00e2ches et ma perception a totalement chang\u00e9 ! Parce que j'ai r\u00e9alis\u00e9 qu'Ansible a des modules pour ex\u00e9cuter les m\u00eames conteneurs Docker, assembler des images, g\u00e9rer des r\u00e9seaux, etc., et qu'il est possible de lancer des conteneurs non seulement localement mais aussi sur des serveurs distants ! Mon enthousiasme \u00e9tait sans limites - j'ai trouv\u00e9 un outil FIABLE et j'ai jet\u00e9 mes fichiers Makefile et docker-compose, remplac\u00e9s par des t\u00e2ches YAML. Le code a \u00e9t\u00e9 r\u00e9duit gr\u00e2ce \u00e0 l'utilisation de constructions comme <code>loop<\/code>, <code>when<\/code>, etc.<\/p>\n<p><\/p>\n<h2>Docker pour faire fonctionner des composants tiers comme des bases de donn\u00e9es<\/h2>\n<p><\/p>\n<p>R\u00e9cemment, j'ai d\u00e9couvert les tunnels SSH. Il s'est av\u00e9r\u00e9 qu'il est tr\u00e8s simple de \u00ab rediriger \u00bb le port d'un serveur distant vers un port local. Le serveur distant peut \u00eatre \u00e0 la fois une machine dans le cloud ou une machine virtuelle ex\u00e9cut\u00e9e dans VirtualBox. Si j'ai besoin d'une base de donn\u00e9es (ou d'un autre composant tiers), je peux simplement d\u00e9marrer un serveur avec ce composant et l'arr\u00eater quand il n'est plus n\u00e9cessaire. La redirection de ports a le m\u00eame effet qu'une base de donn\u00e9es ex\u00e9cut\u00e9e dans un conteneur Docker.<\/p>\n<p><\/p>\n<p>Cette commande redirige mon port local vers un serveur distant avec PostgreSQL :<\/p>\n<p><\/p>\n<blockquote><p>ssh -L 9000:localhost:5432 user@example.com<\/p><\/blockquote>\n<p>Utiliser un serveur distant r\u00e9sout le probl\u00e8me du d\u00e9veloppement en \u00e9quipe. Plusieurs d\u00e9veloppeurs peuvent utiliser ce serveur sans avoir besoin de configurer PostgreSQL, de s'occuper de Docker ou d'autres complexit\u00e9s. Sur le serveur distant, on peut installer la m\u00eame base de donn\u00e9es dans Docker, m\u00eame si la version sp\u00e9cifique est difficile \u00e0 obtenir. Tout ce dont les d\u00e9veloppeurs auront besoin, c'est d'avoir acc\u00e8s via SSH !<\/p>\n<p><\/p>\n<p>J'ai r\u00e9cemment lu que les tunnels SSH sont une fonctionnalit\u00e9 limit\u00e9e d'un VPN classique ! On peut simplement configurer OpenVPN ou d'autres impl\u00e9mentations de VPN, mettre en place l'infrastructure et la mettre \u00e0 disposition des d\u00e9veloppeurs. C'est plut\u00f4t g\u00e9nial !<\/p>\n<p><\/p>\n<p>Heureusement, AWS, Google Cloud et d'autres offrent une ann\u00e9e d'utilisation gratuite, alors profitez-en ! Ils sont peu co\u00fbteux si vous les \u00e9teignez quand ils ne sont pas utilis\u00e9s. Je me suis toujours demand\u00e9 dans quel but j'aurais besoin d'un serveur distant comme gcloud, il semble que je l'ai trouv\u00e9.<\/p>\n<p><\/p>\n<p>Comme machine virtuelle locale, vous pouvez utiliser le m\u00eame Alpine qui est largement utilis\u00e9 dans les conteneurs Docker. Ou d'autres distributions l\u00e9g\u00e8res pour que la machine d\u00e9marre plus rapidement.<\/p>\n<p><\/p>\n<p>En r\u00e9sum\u00e9 : il est possible et n\u00e9cessaire de faire tourner des bases de donn\u00e9es et autres services d'infrastructure sur des serveurs distants ou dans VirtualBox. Je n'ai pas besoin de Docker pour cela.<\/p>\n<p><\/p>\n<h2>Un peu sur les images Docker et leur distribution.<\/h2>\n<p><\/p>\n<p>J'ai d\u00e9j\u00e0 \u00e9crit. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/443136\/\">article<\/a><\/noindex> Dans lequel je voulais faire passer le message que l'utilisation des images Docker ne garantit rien. Les images Docker sont uniquement n\u00e9cessaires pour cr\u00e9er des conteneurs Docker. Si vous vous appuyez sur une image Docker, cela signifie que vous vous appuyez sur l'utilisation de conteneurs Docker et vous serez limit\u00e9 \u00e0 cela.<\/p>\n<p><\/p>\n<p>Avez-vous d\u00e9j\u00e0 vu des d\u00e9veloppeurs de logiciels porter leurs produits uniquement sous forme d'images Docker ?<br \/>\nLe r\u00e9sultat de la plupart des produits est des fichiers binaires pour une plateforme sp\u00e9cifique, qui sont simplement ajout\u00e9s dans une image Docker h\u00e9rit\u00e9e de la plateforme requise. Ne vous \u00eates-vous jamais demand\u00e9 pourquoi il y a tant d'images similaires sur Docker Hub ? Tapez par exemple nginx, vous verrez 100500 images de personnes diff\u00e9rentes. Ces personnes n'ont pas d\u00e9velopp\u00e9 nginx, elles ont simplement ajout\u00e9 l'officiel nginx dans leur image Docker et l'ont agr\u00e9ment\u00e9 de leurs configurations pour simplifier le d\u00e9marrage des conteneurs. <\/p>\n<p><\/p>\n<p>En gros, vous pouvez simplement stocker dans un tgz, et si quelqu'un souhaite le faire tourner dans Docker, qu'il ajoute le tgz dans le Dockerfile, h\u00e9rite de l'environnement n\u00e9cessaire et cr\u00e9e des am\u00e9liorations qui ne modifient pas l'application dans le tgz. Celui qui cr\u00e9era l'image Docker saura ce qu'est ce tgz et ce dont il a besoin pour fonctionner. C'est ainsi que j'utilise Docker. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kondaurovDev\/dockerfile\">ici<\/a><\/noindex><\/p>\n<p><\/p>\n<p>En r\u00e9sum\u00e9 : je n'ai pas besoin d'un registre Docker, je vais utiliser un S3 ou simplement un stockage de fichiers comme Google Drive\/Dropbox.<\/p>\n<p><\/p>\n<h2>Docker dans l'int\u00e9gration continue.<\/h2>\n<p><\/p>\n<p>Toutes les entreprises pour lesquelles j'ai travaill\u00e9 se ressemblent. Ce sont g\u00e9n\u00e9ralement des entreprises de produits. Elles ont donc une application, un ensemble de technologies (peut-\u00eatre deux ou trois langages de programmation).<\/p>\n<p><\/p>\n<p>Ces entreprises utilisent Docker sur leurs serveurs o\u00f9 le processus CI est ex\u00e9cut\u00e9. La question est : pourquoi doit-on construire des projets dans des conteneurs Docker sur leurs serveurs ? Pourquoi ne pas simplement pr\u00e9parer un environnement de construction, par exemple, \u00e9crire un playbook Ansible qui installerait les bonnes versions de Node.js, PHP, JDK, et copierait les cl\u00e9s SSH, etc., sur le serveur o\u00f9 la construction aura lieu ? <\/p>\n<p><\/p>\n<p>Maintenant, je comprends que c'est se tirer une balle dans le pied, car Docker n'apporte aucun b\u00e9n\u00e9fice avec son isolement. Les probl\u00e8mes de CI dans Docker auxquels j'ai \u00e9t\u00e9 confront\u00e9 :<\/p>\n<p><\/p>\n<ul>\n<li>il faut \u00e0 nouveau une image Docker pour la compilation. Il faut chercher une image ou \u00e9crire son propre Dockerfile.<\/li>\n<li>90 % du temps, il faut transmettre des cl\u00e9s SSH, des donn\u00e9es secr\u00e8tes qu'on ne veut pas \u00e9crire dans l'image Docker.<\/li>\n<li>le conteneur se cr\u00e9e puis meurt, perdant tous les caches avec lui. La prochaine compilation devra t\u00e9l\u00e9charger toutes les d\u00e9pendances du projet \u00e0 nouveau, ce qui prend du temps et est inefficace, et le temps, c'est de l'argent.<\/li>\n<\/ul>\n<p><\/p>\n<p>Les d\u00e9veloppeurs ne construisent pas de projets dans des conteneurs Docker (j'\u00e9tais autrefois un tel fan, d'ailleurs, je me plains de moi-m\u00eame dans le pass\u00e9 xD). En Java, il est possible d'avoir plusieurs versions et de changer celle dont on a besoin d'une simple commande. En Node.js, c'est pareil, il y a nvm.<\/p>\n<p><\/p>\n<h2>Sortie<\/h2>\n<p><\/p>\n<p>Je pense que Docker est un outil tr\u00e8s puissant et flexible, ce qui en fait son inconv\u00e9nient (cela peut sembler \u00e9trange, non ?). Gr\u00e2ce \u00e0 lui, les entreprises s'y \u00ab accrochent \u00bb facilement, l'utilisent o\u00f9 il le faut et o\u00f9 il ne le faut pas. Les d\u00e9veloppeurs lancent leurs conteneurs, leur propre environnement, puis tout cela s'\u00e9coule graduellement vers le CI et la production. L'\u00e9quipe DevOps \u00e9crit des solutions pour lancer ces conteneurs.<\/p>\n<p><\/p>\n<p>Utilisez Docker uniquement \u00e0 <strong>la toute derni\u00e8re<\/strong> \u00e9tape de votre processus de travail, ne l'introduisez pas dans le projet au d\u00e9but. Il ne r\u00e9soudra pas vos probl\u00e8mes commerciaux. Il d\u00e9placera simplement les probl\u00e8mes \u00e0 UN AUTRE niveau et proposera ses propres solutions, vous fera faire un double travail.<\/p>\n<p><\/p>\n<p><strong><em>Quand Docker est n\u00e9cessaire<\/em><\/strong>: je suis arriv\u00e9 \u00e0 la conclusion que Docker est tr\u00e8s bon pour optimiser un processus \u00e9tabli mais pas pour construire une fonctionnalit\u00e9 de base.<\/p>\n<p><\/p>\n<p>Si vous d\u00e9cidez tout de m\u00eame d'utiliser Docker, alors :<\/p>\n<p><\/p>\n<ul>\n<li>soyez extr\u00eamement prudent<\/li>\n<li>ne forcez pas l'utilisation de Docker sur les d\u00e9veloppeurs<\/li>\n<li>limitez son utilisation \u00e0 un seul endroit, ne le diss\u00e9quez pas dans tous les d\u00e9p\u00f4ts avec des Dockerfiles et docker-compose.<\/li>\n<\/ul>\n<p><\/p>\n<p>PS :<\/p>\n<p><\/p>\n<ul>\n<li>Je suis r\u00e9cemment tomb\u00e9 sur <noindex><a rel=\"nofollow\" href=\"https:\/\/www.packer.io\/\">packer<\/a><\/noindex> Et on dit qu'il fonctionne tr\u00e8s bien avec Ansible et permet d'unifier le processus de cr\u00e9ation d'images (y compris les images Docker).<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.smashcompany.com\/technology\/docker-is-a-dangerous-gamble-which-we-will-regret\">C'est aussi \u00e0 propos de Docker, un article int\u00e9ressant.<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Merci d'avoir lu jusqu'ici, je vous souhaite des solutions claires dans vos affaires et des journ\u00e9es de travail productives !<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/445914\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041e\u043e\u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0442\u0435\u043c\u0435, \u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043c\u043e\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u042f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 frontend \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, scala\/java \u0438 nodejs \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0433\u043e (\u0443\u0436\u0435 \u0442\u043e\u0447\u043d\u043e \u043f\u0430\u0440\u0443 \u2014 \u0442\u0440\u043e\u0439\u043a\u0443 \u043b\u0435\u0442), \u044f \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0441\u044f \u043c\u043d\u0435\u043d\u0438\u044f, \u0447\u0442\u043e docker \u044d\u0442\u043e \u043c\u0430\u043d\u043d\u0430 \u043d\u0435\u0431\u0435\u0441\u043d\u0430\u044f \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0438 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 [&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-31641","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=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041e\u043e\u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0442\u0435\u043c\u0435, \u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043c\u043e\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u042f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 frontend.\" \/>\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\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da\" \/>\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\udd47Docker \u2014 \u044d\u0442\u043e \u0438\u0433\u0440\u0443\u0448\u043a\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442? \u0418\u043b\u0438 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0434\u0430? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041e\u043e\u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0442\u0435\u043c\u0435, \u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043c\u043e\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u042f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 frontend.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da\" \/>\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-31T18:42:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:42:19+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\udd47Docker \u2014 est-ce un jouet ou pas ? Ou peut-\u00eatre que si ? | ProHoster","description":"Bonjour \u00e0 tous ! J'ai vraiment h\u00e2te de plonger directement dans le sujet, mais il serait plus appropri\u00e9 de vous parler un peu de mon histoire : Introduction Je suis d\u00e9veloppeur avec une exp\u00e9rience en d\u00e9veloppement frontend.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","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\udd47Docker \u2014 \u044d\u0442\u043e \u0438\u0433\u0440\u0443\u0448\u043a\u0430 \u0438\u043b\u0438 \u043d\u0435\u0442? \u0418\u043b\u0438 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0434\u0430? | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041e\u043e\u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u044f\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0442\u0435\u043c\u0435, \u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043c\u043e\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u042f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 frontend.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","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-31T18:42:19+00:00","article:modified_time":"2019-10-31T18:42:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31641","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-21 07:08:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:13:28","updated":"2026-01-21 07:08:22","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\/31641","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=31641"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/31641\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=31641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=31641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=31641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}