{"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\/nl\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","title":{"rendered":"Is Docker a toy or not? Or is it indeed?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hallo allemaal!<\/p>\n<p><\/p>\n<p>I really want to dive straight into the topic, but it\u2019s better to share a little about my story first:<\/p>\n<p><\/p>\n<h2>Inleiding<\/h2>\n<p><\/p>\n<p>I am a programmer with experience in developing frontend single-page applications, Scala\/Java, and Node.js on the server side. <\/p>\n<p><\/p>\n<p>For quite a while (definitely a couple of years), I held the opinion that Docker is a godsend and a really cool tool that every developer should know how to use. This implies that every developer should have Docker installed on their local machine. Forget about my opinion; just browse through the job listings on sites like hh. In every second one, there's a mention of Docker, and if you know it, it will be your competitive advantage \ud83d\ude09<\/p>\n<p><\/p>\n<p>Along my journey, I encountered many people with different attitudes towards Docker and its ecosystem. Some said it\u2019s a handy tool that guarantees cross-platform compatibility. Others didn\u2019t see the point of running in containers and what benefits it brought. Some didn\u2019t care at all and simply wrote code and went home\u2014I envy them, by the way \ud83d\ude42<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Reasons for use<\/h2>\n<p><\/p>\n<p>Why did I use Docker? Probably for the following reasons:<\/p>\n<p><\/p>\n<ul>\n<li>Running databases; 99% of applications utilize them.<\/li>\n<li>Running Nginx for serving frontend and proxying to backend.<\/li>\n<li>You can package your application into a Docker image, so my application will work anywhere Docker is present; the distribution problem is solved right away.<\/li>\n<li>Service discovery out of the box; you can create microservices, and each container (connected to a shared network) can easily reach another by alias, which is very convenient.<\/li>\n<li>Het is leuk om een container te cre\u00ebren en daarin te 'spelen'.<\/li>\n<\/ul>\n<p><\/p>\n<h2>What I have always NOT liked about Docker:<\/h2>\n<p><\/p>\n<ul>\n<li>For my application to work, Docker itself is needed on the server. But why would I need that if my applications run on JRE or Node.js and the environment for them is already on the server?<\/li>\n<li>If I want to run my (private) locally built image on a remote server, I need my own Docker repository; I need a registry to be running somewhere, and I also need to set up HTTPS because the Docker CLI only works over HTTPS. Oh man... there are, of course, ways to save the image locally through <code>docker save<\/code> En via scp gewoon de afbeelding overzetten... Maar dat vergt zoveel moeite. En bovendien lijkt het een 'hacked' oplossing totdat er een eigen repository komt.<\/li>\n<li><code>docker-compose<\/code>. Het is alleen nodig voor het starten van containers. En dat is het. Meer kan het niet. <code>Docker-compose<\/code> heeft een heleboel versies van zijn bestanden, zijn eigen syntaxis. Hoe declaratief het ook is, ik wil hun documentatie niet lezen. Ik heb die meer nergens anders nodig.<\/li>\n<li>bij het werken in een team schrijven de meeste mensen de Dockerfile heel slordig, begrijpen niet hoe het cachewerkt, voegen alles wat nodig en niet nodig is aan het beeld toe, erven van beelden die niet op dockerhub of in een priv\u00e9-repository staan, cre\u00ebren een paar <code>docker-compose<\/code> Bestanden met databases worden niet persistent. Toch verklaren ontwikkelaars trots dat Docker geweldig is, alles werkt lokaal en HR schrijft belangrijk in vacatures: 'We gebruiken Docker en we hebben een kandidaat met die ervaring nodig.'<\/li>\n<li>krijg je constant de gedachte om alles in docker op te zetten: postgresql, kafka, redis. Jammer dat niet alles in containers werkt, niet alles gemakkelijk te configureren en op te starten is. Dit wordt ondersteund door externe ontwikkelaars, niet door de verkopers zelf. Trouwens, er rijst meteen de vraag waarom de verkopers zich niet druk maken over de ondersteuning van hun producten in docker, misschien weten ze iets?<\/li>\n<li>er rijst altijd de vraag over de persistentie van containerdata. En dan denk je, moet ik de hostdirectory gewoon koppelen of een docker volume cre\u00ebren of een data container maken die nu <code>verouderd<\/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> dan worden de gegevens gewoon ergens gegenereerd <code>\/usr\/*<\/code> En hetzelfde verhaal met uid en gid zoals in het eerste geval. Als je een externe component start, moet je de documentatie doorlezen en het antwoord zoeken op de vraag: 'in welke mappen van de container schrijft de component bestanden?'<\/li>\n<\/ul>\n<p>Ik heb altijd een hekel gehad aan het feit dat ik te lang met docker moest rommelen. <strong>in de beginfase<\/strong>: bedacht ik hoe ik containers moest starten, van welke beelden ik moest opstarten, maakte ik Makefile's met aliassen voor lange docker-commando's. Ik kon docker-compose niet uitstaan omdat ik niet nog een tool uit het docker-ecosysteem wilde leren. En <code>docker-compose up<\/code> dat stoorde me, vooral als er ook nog eens <code>build<\/code> constructies waren en geen al gebouwde beelden. Alles wat ik echt wilde, was gewoon het product effici\u00ebnt en snel te maken. Maar ik kon het gebruik van docker op de een of andere manier niet goed organiseren.<\/p>\n<p><\/p>\n<h2>Kennismaking met Ansible<\/h2>\n<p><\/p>\n<p>Onlangs (ongeveer drie maanden geleden) heb ik samengewerkt met een DevOps-team waarvan bijna alle leden negatief stonden tegenover Docker. De redenen hiervoor zijn:<\/p>\n<p><\/p>\n<ul>\n<li>Docker beheert iptables (hoewel dit kan worden uitgeschakeld in daemon.json)<\/li>\n<li>Docker is onbetrouwbaar en we zullen het niet in productie draaien<\/li>\n<li>Als de Docker-daemon crasht, vallen ook alle containers met infrastructuur uit<\/li>\n<li>Er is geen noodzaak voor Docker<\/li>\n<li>Waarom Docker als er Ansible en virtuele machines zijn?<\/li>\n<\/ul>\n<p><\/p>\n<p>Op dezelfde werkplek leerde ik ook een ander instrument kennen - Ansible. Ik had er ooit over gehoord, maar had nog geen eigen playbooks geschreven. Maar nu ben ik begonnen met het schrijven van mijn eigen taken en mijn visie is volledig veranderd! Omdat ik begreep: Ansible heeft modules om dezelfde Docker-containers, afbeelding builds, netwerken enz. uit te voeren, en containers kunnen zowel lokaal als op externe servers worden uitgevoerd! Mijn enthousiasme kende geen grenzen - ik had een ECHT goed instrument gevonden en mijn Makefile en Docker-compose-bestanden weggegooid, die nu waren vervangen door yaml-taken. De code werd verminderd door het gebruik van constructies zoals <code>loop<\/code>, <code>when<\/code>, enzovoorts.<\/p>\n<p><\/p>\n<h2>Docker voor het uitvoeren van externe componenten zoals databases<\/h2>\n<p><\/p>\n<p>Onlangs heb ik kennisgemaakt met ssh-tunnels. Het bleek heel eenvoudig om een poort van de externe server door te geven naar een lokale poort. De externe server kan zowel een cloudmachine zijn als een virtuele machine die in VirtualBox draait. Als ik of mijn collega een db (of een andere externe component) nodig hebben, kunnen we de server met deze component gewoon opstarten en uitschakelen wanneer de server niet nodig is. Poortdoorsturing geeft hetzelfde effect als een db die in een Docker-container draait.<\/p>\n<p><\/p>\n<p>Dit commando stuurt mijn lokale poort door naar de externe server met PostgreSQL:<\/p>\n<p><\/p>\n<blockquote><p>ssh -L 9000:localhost:5432 user@example.com<\/p><\/blockquote>\n<p>Het gebruik van een externe server lost het probleem van teamontwikkeling op. Meerdere ontwikkelaars kunnen deze server tegelijk gebruiken, ze hoeven niet te leren hoe ze PostgreSQL moeten configureren, zich bezig te houden met Docker en andere complicaties. Op de externe server kan dezelfde database in Docker worden ge\u00efnstalleerd als het moeilijk is om een specifieke versie te vinden. Alles wat ontwikkelaars nodig hebben, is SSH-toegang!<\/p>\n<p><\/p>\n<p>Recentelijk las ik dat SSH-tunnels een beperkte functionaliteit van een gewone VPN zijn! Je kunt eenvoudig OpenVPN of andere VPN-implementaties instellen, de infrastructuur configureren en deze ter beschikking stellen aan ontwikkelaars. Dat is toch geweldig!<\/p>\n<p><\/p>\n<p>Gelukkig bieden AWS, Google Cloud en anderen een jaar gratis gebruik aan, dus maak er gebruik van! Ze zijn goedkoop als je ze uitschakelt wanneer ze niet worden gebruikt. Ik heb altijd nagedacht over de doeleinden waarvoor ik een externe server zoals gcloud zou gebruiken, en het lijkt erop dat ik ze heb gevonden.<\/p>\n<p><\/p>\n<p>Als virtuele machine op de lokale server kun je hetzelfde Alpine gebruiken dat actief is in docker containers. Of andere lichte distributies zodat de machine sneller opstart.<\/p>\n<p><\/p>\n<p>Conclusie: je kunt en moet databases en andere infrastructurele zaken op externe servers of in VirtualBox draaien. Ik heb Docker niet nodig voor deze doeleinden.<\/p>\n<p><\/p>\n<h2>Een beetje over docker images en distributie<\/h2>\n<p><\/p>\n<p>Ik heb al geschreven <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/443136\/\">artikel<\/a><\/noindex> waarin ik wilde overbrengen dat het gebruik van docker images geen enkele garantie biedt. Docker images zijn alleen nodig om een docker container te cre\u00ebren. Als je vastloopt op een docker image, betekent dat dat je vastloopt op het gebruik van docker containers en dat je alleen met hen zult werken.<\/p>\n<p><\/p>\n<p>Heb je ooit gezien dat softwareontwikkelaars hun producten alleen in docker images porteren?<br \/>\nHet resultaat van de meeste producten zijn binaire bestanden voor een bepaald platform; deze worden gewoon toegevoegd aan de docker image die is afgeleid van het vereiste platform. Heb je je ooit afgevraagd waarom er zoveel vergelijkbare images op Docker Hub zijn? Zoek bijvoorbeeld naar nginx, je ziet 100500 images van verschillende mensen. Deze mensen hebben nginx zelf niet ontwikkeld, ze hebben gewoon de offici\u00eble nginx aan hun docker image toegevoegd en het zijn configuraties voor het gemak van het opstarten van containers. <\/p>\n<p><\/p>\n<p>Over het algemeen kun je het eenvoudig opslaan in tgz; als iemand het in docker wil draaien, laat ze dan tgz toevoegen in de Dockerfile, afgeleid van de juiste omgeving en extra functies cre\u00ebren die de applicatie in tgz niet veranderen. Degene die de docker image zal maken, zal weten wat deze tgz is en wat hij nodig heeft om te werken. Dit is hoe ik docker gebruik. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kondaurovDev\/dockerfile\">here<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Conclusie: ik heb geen docker registry nodig, ik zal gebruikmaken van een S3 of gewoon een bestandopslag zoals Google Drive\/Dropbox.<\/p>\n<p><\/p>\n<h2>Docker in CI<\/h2>\n<p><\/p>\n<p>Alle bedrijven waarvoor ik heb gewerkt, lijken op elkaar. Ze zijn meestal productgerichte bedrijven. Dat wil zeggen, ze hebben \u00e9\u00e9n applicatie, \u00e9\u00e9n technologische stack (misschien een paar talen).<\/p>\n<p><\/p>\n<p>Deze bedrijven gebruiken Docker op hun servers waar het CI-proces draait. De vraag is: waarom projecten in een Docker-container op hun servers bouwen? Waarom gewoon geen omgeving voor de bouw voorbereiden, bijvoorbeeld een Ansible-playbook schrijven dat de benodigde versies van Node.js, PHP, JDK installeert en SSH-sleutels enz. naar de server kopieert waar de bouw plaatsvindt? <\/p>\n<p><\/p>\n<p>Nu begrijp ik dat dit jezelf in de voet schieten is, omdat Docker geen voordeel biedt met zijn isolatie. Problemen met CI in Docker waarmee ik te maken heb gekregen:<\/p>\n<p><\/p>\n<ul>\n<li>je hebt opnieuw een Docker-image nodig voor de bouw. Je moet het image zoeken of je eigen Dockerfile schrijven.<\/li>\n<li>90% kans dat je enige SSH-sleutels, gevoelige gegevens moet doorgeven die je liever niet in het Docker-image schrijft.<\/li>\n<li>de container wordt aangemaakt en gaat weer dood, waardoor alle caches verloren gaan. De volgende bouw zal alle projectafhankelijkheden opnieuw moeten downloaden, en dat is lang en ineffici\u00ebnt, terwijl tijd geld is.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ontwikkelaars bouwen geen projecten in Docker-containers (ik was ooit zo'n fan, echt waar, ik heb medelijden met mezelf uit het verleden xD). In Java is er de mogelijkheid om meerdere versies te hebben en met \u00e9\u00e9n commando over te schakelen naar degene die nu nodig is. Hetzelfde geldt voor Node.js, er is nvm.<\/p>\n<p><\/p>\n<h2>Uitslag<\/h2>\n<p><\/p>\n<p>Ik denk dat Docker een zeer krachtig en flexibel hulpmiddel is, en dat is ook zijn nadeel (klinkt vreemd, toch?). Daarmee kunnen bedrijven gemakkelijk 'verslaafd' raken, het gebruiken waar het nodig is en waar het niet nodig is. Ontwikkelaars starten hun containers, een eigen omgeving, en dat stroomt vervolgens soepel door naar CI en productie. Het DevOps-team maakt wat fietsen om deze containers te starten.<\/p>\n<p><\/p>\n<p>Gebruik Docker alleen op <strong>het allerlaatste<\/strong> stadium van je werkproces, trek het niet in het project aan het begin. Het lost je zakelijke problemen niet op. Het verschuift de problemen alleen naar een ANDER niveau en biedt zijn eigen oplossingen aan, waardoor je dubbele arbeid verricht.<\/p>\n<p><\/p>\n<p><strong><em>Wanneer is Docker nodig<\/em><\/strong>: ik ben tot de conclusie gekomen dat Docker heel goed is in het optimaliseren van een vastgestelde proces, maar niet in het bouwen van basisfunctionaliteit.<\/p>\n<p><\/p>\n<p>Als je toch hebt besloten Docker te gebruiken, dan:<\/p>\n<p><\/p>\n<ul>\n<li>wees uiterst voorzichtig<\/li>\n<li>dwing het gebruik van Docker niet op aan ontwikkelaars<\/li>\n<li>lokaliseer het gebruik op \u00e9\u00e9n plek, verdeel het niet over alle repositories met Dockerfile en docker-compose<\/li>\n<\/ul>\n<p><\/p>\n<p>PS:<\/p>\n<p><\/p>\n<ul>\n<li>Onlangs stuitte ik op <noindex><a rel=\"nofollow\" href=\"https:\/\/www.packer.io\/\">packer<\/a><\/noindex> En ze zeggen dat het heel goed samenwerkt met Ansible en het mogelijk maakt om het proces van het bouwen van beelden (inclusief docker image) te uniformiseren.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.smashcompany.com\/technology\/docker-is-a-dangerous-gamble-which-we-will-regret\">Ook over docker, interessant artikel.<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Bedankt voor het lezen! Ik wens je transparante oplossingen in je zaken en productieve werkdagen!<\/p>\n<p>Bron: <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.3 - 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\/nl\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47Is Docker een speeltje of niet? Of toch wel?","description":"Hallo allemaal! Ik wil heel graag meteen met het onderwerp beginnen, maar het is beter om eerst iets over mijn verhaal te vertellen: Inleiding Ik ben een programmeur met ervaring in frontend ontwikkeling.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/31641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=31641"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/31641\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=31641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=31641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=31641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}