{"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\/da\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","title":{"rendered":"Docker \u2013 er det et leges\u00e6t eller ej? Eller m\u00e5ske ja?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hej alle sammen!<\/p>\n<p><\/p>\n<p>Jeg har meget lyst til straks at springe ind i emnet, men det er bedre at fort\u00e6lle lidt om min historie f\u00f8rst:<\/p>\n<p><\/p>\n<h2>Introduktion<\/h2>\n<p><\/p>\n<p>Jeg er programm\u00f8r med erfaring i udvikling af frontend-eensides applikationer, Scala\/Java og Node.js p\u00e5 serveren. <\/p>\n<p><\/p>\n<p>I lang tid (i hvert fald et par - tre \u00e5r), har jeg ment, at Docker er en himmelsk gave og generelt et fantastisk v\u00e6rkt\u00f8j, som enhver udvikler b\u00f8r kunne bruge. Heraf f\u00f8lger, at hver udvikler ogs\u00e5 b\u00f8r have Docker installeret p\u00e5 sin lokale maskine. Og hvad ang\u00e5r min mening, kan du blot kigge p\u00e5 de jobopslag, der findes p\u00e5 HH. I hver anden er der n\u00e6vnt Docker, og hvis du kan det, vil det v\u00e6re din konkurrencefordel \ud83d\ude09<\/p>\n<p><\/p>\n<p>P\u00e5 min rejse har jeg m\u00f8dt mange mennesker med forskellige holdninger til Docker og dens \u00f8kosystem. Nogle sagde, at det er et praktisk v\u00e6rkt\u00f8j, der garanterer tv\u00e6rplatformskompatibilitet. Andre forstod ikke, hvorfor de skulle k\u00f8re i containere, og hvad gevinsten var, og nogle var helt ligeglade og bekymrede sig ikke (de skrev bare kode og gik hjem - jeg misunder dem, for \u00f8vrigt \ud83d\ude42)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>\u00c5rsager til brug<\/h2>\n<p><\/p>\n<p>Hvorfor brugte jeg Docker? M\u00e5ske af f\u00f8lgende \u00e5rsager:<\/p>\n<p><\/p>\n<ul>\n<li>opstart af databaser; 99% af applikationerne bruger dem<\/li>\n<li>opstart af Nginx til at levere frontend og proxy til backend<\/li>\n<li>man kan pakke en applikation i et Docker-billede; dermed vil min applikation fungere, hvor som helst der er Docker, distributionsproblemet er l\u00f8st med det samme<\/li>\n<li>service discovery lige ud af boksen, man kan lave mikrotjenester; hver container (tilsluttet et f\u00e6lles netv\u00e6rk) kan nemt n\u00e5 den anden via alias, meget praktisk<\/li>\n<li>Det er sjovt at oprette en container og \"lege\" med den.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Hvad jeg altid IKKElige ved Docker:<\/h2>\n<p><\/p>\n<ul>\n<li>For at min applikation skal fungere, kr\u00e6ver jeg, at Docker er installeret p\u00e5 serveren. Og hvorfor skulle jeg have det, n\u00e5r mine applikationer allerede k\u00f8rer p\u00e5 JRE eller Node.js, og der allerede er et milj\u00f8 til dem p\u00e5 serveren?<\/li>\n<li>Hvis jeg \u00f8nsker at k\u00f8re mit (private) lokalbyggede billede p\u00e5 en fjernserver, har jeg brug for mit eget Docker-repositorium, og der skal v\u00e6re en registry, der fungerer et eller andet sted, og jeg skal ogs\u00e5 konfigurere HTTPS, fordi Docker CLI kun fungerer via HTTPS. \u00c5h, pokker\u2026 der er selvf\u00f8lgelig muligheder for at gemme billedet lokalt gennem <code>docker save<\/code> Og s\u00e5 kan man bare bruge scp til at overf\u00f8re billedet... Men det kr\u00e6ver s\u00e5 mange bev\u00e6gelser. Derudover ser det \"klodset\" ud, indtil man f\u00e5r sit eget repository.<\/li>\n<li><code>docker-compose<\/code>Den er kun n\u00f8dvendig for at k\u00f8re containere. Og det er alt. Der er ikke mere, den kan g\u00f8re. <code>Docker-compose<\/code> har en masse versioner af sine filer, sin egen syntaks. Uanset hvor deklarativ den m\u00e5tte v\u00e6re, vil jeg ikke l\u00e6se deres dokumentation. Jeg har ikke brug for den noget andet sted.<\/li>\n<li>N\u00e5r man arbejder i et team, skriver de fleste mennesker Dockerfile meget sk\u00e6vt, forst\u00e5r ikke, hvordan det caches, tilf\u00f8jer alt, hvad der er n\u00f8dvendigt og un\u00f8dvendigt til billedet, arver fra billeder, der ikke er p\u00e5 dockerhub eller i et privat repository, skaber nogle <code>docker-compose<\/code> Filer med databaser og ingenting bliver persisteret. Alligevel erkl\u00e6rer udviklerne stolt, at Docker er fantastisk, de f\u00e5r alt til at fungere lokalt, og HR skriver vigtigt i jobopslagene: \"Vi bruger Docker, og vi har brug for en kandidat med denne erfaring.\"<\/li>\n<li>jagter konstant tanken om at k\u00f8re alt og alle i docker: postgresql, kafka, redis. Det er \u00e6rgerligt, at ikke alt fungerer i containere, ikke alt er let at konfigurere og starte. Dette st\u00f8ttes af tredjepartsudviklere og ikke af leverand\u00f8rerne selv. Og forresten opst\u00e5r straks sp\u00f8rgsm\u00e5let, leverand\u00f8ren bekymrer sig ikke om at vedligeholde sine produkter i docker, hvorfor g\u00f8r de ikke det, m\u00e5ske ved de noget?<\/li>\n<li>der opst\u00e5r altid sp\u00f8rgsm\u00e5l om vedholdenheden af containerdata. Og her overvejer man, om man bare skal montere en v\u00e6rtens mappe eller oprette en docker volume eller lave en data container, som nu <code>deprecated<\/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> dataene bare bliver oprettet i et eller andet <code>\/usr\/*<\/code> Og der vil v\u00e6re den samme historie med uid og gid som i det f\u00f8rste tilf\u00e6lde. Hvis man k\u00f8rer en ekstern komponent, skal man l\u00e6se dokumentationen og finde svaret p\u00e5 sp\u00f8rgsm\u00e5let: \"i hvilke mapper i containeren skriver komponenten filer?\"<\/li>\n<\/ul>\n<p>Jeg har altid ikke kunnet lide, at man skal bruge for lang tid p\u00e5 at rode med docker. <strong>I den indledende fase<\/strong>: fandt jeg ud af, hvordan man k\u00f8rer containere, fra hvilke billeder man skal starte, lavede Makefile, som indeholdt aliase til lange docker-kommandoer. Jeg kunne ikke lide docker-compose, fordi jeg ikke ville l\u00e6re endnu et v\u00e6rkt\u00f8j i docker-\u00f8kosystemet. Og <code>docker-compose up<\/code> det irriterede mig, is\u00e6r hvis der ogs\u00e5 var <code>build<\/code> konstruktioner, og ikke allerede bygget billeder. Alt, hvad jeg virkelig \u00f8nskede, var blot at g\u00f8re produktet effektivt og hurtigt. Men jeg kunne simpelthen ikke organisere brugen af docker.<\/p>\n<p><\/p>\n<h2>Introduktion til Ansible<\/h2>\n<p><\/p>\n<p>For nylig (for tre m\u00e5neder siden) arbejdede jeg sammen med et DevOps-team, hvor n\u00e6sten hvert medlem havde en negativ holdning til docker. Af \u00e5rsager:<\/p>\n<p><\/p>\n<ul>\n<li>Docker styrer iptables (selvom det kan deaktiveres i daemon.json)<\/li>\n<li>Docker er temmelig skadelig, og vi vil ikke k\u00f8re det i produktion<\/li>\n<li>Hvis Docker-demonen crasher, crasher alle containere med infrastrukturen ogs\u00e5<\/li>\n<li>Der er ikke behov for Docker<\/li>\n<li>Hvorfor bruge Docker, n\u00e5r der er Ansible og virtuelle maskiner?<\/li>\n<\/ul>\n<p><\/p>\n<p>P\u00e5 det samme arbejde st\u00f8dte jeg p\u00e5 et andet v\u00e6rkt\u00f8j - Ansible. Jeg havde engang h\u00f8rt om det, men havde ikke pr\u00f8vet at skrive mine egne playbooks. Men nu begyndte jeg at skrive mine egne opgaver, og mit synspunkt \u00e6ndrede sig helt! For jeg inds\u00e5, at Ansible har moduler til at k\u00f8re de samme Docker-containere, bygge billeder, netv\u00e6rk mv., og containere kan k\u00f8res ikke kun lokalt, men ogs\u00e5 p\u00e5 eksterne servere! Min begejstring kendte ingen gr\u00e6nser - jeg havde fundet et GODT v\u00e6rkt\u00f8j og smidt mine Makefile og Docker Compose-filer v\u00e6k, de blev erstattet med YAML-opgaver. Koden blev reduceret takket v\u00e6re brugen af konstruktioner som <code>loop<\/code>, <code>block<\/code>, osv.<\/p>\n<p><\/p>\n<h2>Docker til at k\u00f8re tredjeparts komponenter som databaser<\/h2>\n<p><\/p>\n<p>For nylig l\u00e6rte jeg om SSH-tunneler. Det viste sig, at det er meget nemt at \"viderekoble\" porten fra den fjerne server til den lokale port. Den fjerne server kan v\u00e6re b\u00e5de en maskine i skyen og en virtuel maskine, der k\u00f8rer i VirtualBox. Hvis jeg eller en kollega har brug for en database (eller en anden ekstern komponent), kan man bare starte serveren med denne komponent og slukke den, n\u00e5r serveren ikke l\u00e6ngere er n\u00f8dvendig. Portviderekobling giver den samme effekt som en database, der k\u00f8rer i en Docker-container.<\/p>\n<p><\/p>\n<p>Denne kommando forwarder min lokale port til den eksterne server med PostgreSQL:<\/p>\n<p><\/p>\n<blockquote><p>ssh -L 9000:localhost:5432 user@example.com<\/p><\/blockquote>\n<p>Brugen af en ekstern server l\u00f8ser problemet med udvikling i et team. Flere udviklere kan bruge den samme server, de beh\u00f8ver ikke at kunne konfigurere PostgreSQL, forst\u00e5 Docker og de \u00f8vrige finurligheder. P\u00e5 den eksterne server kan man installere den samme database i Docker, hvis det er sv\u00e6rt at installere en specifik version. Alt hvad udviklerne vil have brug for er SSH-adgang!<\/p>\n<p><\/p>\n<p>Jeg l\u00e6ste for nylig, at SSH-tunneler er en begr\u00e6nset funktionalitet sammenlignet med en almindelig VPN! Man kan nemt konfigurere OpenVPN eller andre VPN-l\u00f8sninger, ops\u00e6tte infrastrukturen og give den til udviklerne. Det er ret cool!<\/p>\n<p><\/p>\n<p>Heldigvis tilbyder AWS, GoogleCloud og andre et gratis \u00e5rs brug, s\u00e5 udnyt det! De er billige, hvis du slukker for dem, n\u00e5r de ikke er i brug. Jeg har altid spekuleret p\u00e5, hvorn\u00e5r jeg ville have brug for en fjernserver som gcloud; nu ser det ud til, at jeg har fundet svaret.<\/p>\n<p><\/p>\n<p>Som en virtuel maskine p\u00e5 lokalt niveau kan du bruge den samme Alpine, som aktivt anvendes i Docker-containere. Eller nogle andre lette distributioner for hurtigere opstart af maskinen.<\/p>\n<p><\/p>\n<p>Konklusion: det er muligt og n\u00f8dvendigt at k\u00f8re databaser og andre infrastrukturelle komponenter p\u00e5 fjernservere eller i VirtualBox. Jeg har ikke brug for Docker til disse form\u00e5l.<\/p>\n<p><\/p>\n<h2>Lidt om Docker-billeder og distribution.<\/h2>\n<p><\/p>\n<p>Jeg har tidligere skrevet <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/443136\/\">artiklen<\/a><\/noindex> om, at brugen af Docker-billeder ikke giver nogen garantier. Docker-billeder er kun n\u00f8dvendige for at oprette Docker-containere. Hvis du er bundet til et Docker-billede, betyder det, at du kun kan bruge Docker-containere.<\/p>\n<p><\/p>\n<p>Har du nogensinde set udviklere portere deres produkter kun til Docker-billeder?<br \/>\nResultatet af de fleste produkter er bin\u00e6re filer til en bestemt platform, som blot tilf\u00f8jes til et Docker-billede, der arver fra den n\u00f8dvendige platform. Har du nogensinde undret dig over, hvorfor der er s\u00e5 mange lignende billeder p\u00e5 Docker Hub? S\u00f8g for eksempel p\u00e5 nginx, og du vil se 100.500 billeder fra forskellige mennesker. Disse personer har ikke selv udviklet nginx; de har blot tilf\u00f8jet den officielle nginx til deres Docker-billede og tilf\u00f8jet deres egne konfigurationer for at lette opstarten af containerne. <\/p>\n<p><\/p>\n<p>Generelt kan man gemme dem som tgz; hvis nogen har brug for at k\u00f8re dette i Docker, kan de tilf\u00f8je tgz i Dockerfile, arve fra det n\u00f8dvendige milj\u00f8 og skabe yderligere funktioner, der ikke \u00e6ndrer selve applikationen i tgz. Den, der skaber Docker-billedet, vil vide, hvad denne tgz er, og hvad der er n\u00f8dvendigt for at f\u00e5 det til at fungere. Det er s\u00e5ledes, jeg bruger Docker. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kondaurovDev\/dockerfile\">her<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Konklusion: jeg har ikke brug for en Docker registry; jeg vil bruge et hvilket som helst S3 eller blot en filopbevaring som Google Drive\/Dropbox.<\/p>\n<p><\/p>\n<h2>Docker i CI<\/h2>\n<p><\/p>\n<p>Alle de virksomheder, jeg har arbejdet for, ligner hinanden. De er typisk produktbaserede. Det vil sige, at de har \u00e9n applikation, \u00e9n teknologistak (m\u00e5ske et par \u2014 tre programmeringssprog).<\/p>\n<p><\/p>\n<p>Disse virksomheder bruger Docker p\u00e5 deres servere, hvor CI-processen k\u00f8rer. Sp\u00f8rgsm\u00e5let er \u2014 hvorfor skal man samle projekter i Docker-containere p\u00e5 egne servere? Hvorfor ikke bare forberede et milj\u00f8 til opbygning, for eksempel ved at skrive en Ansible-playbook, der installerer de n\u00f8dvendige versioner af Node.js, PHP, JDK, kopierer SSH-n\u00f8gler osv. til serveren, hvor opbygningen skal finde sted? <\/p>\n<p><\/p>\n<p>Nu forst\u00e5r jeg, at det er skud i foden, fordi Docker ikke giver nogen gevinst med sin isolation. Problemer med CI i Docker, som jeg har st\u00f8dt p\u00e5:<\/p>\n<p><\/p>\n<ul>\n<li>igen har jeg brug for et Docker-billede til opbygning. Jeg skal finde et billede eller skrive min egen Dockerfile.<\/li>\n<li>90% af tiden skal jeg videregive nogle SSH-n\u00f8gler, hemmelige oplysninger, som jeg ikke \u00f8nsker at skrive i Docker-billedet.<\/li>\n<li>Containeren oprettes og d\u00f8r, og alle caches tabes sammen med den. N\u00e6ste opbygning vil skulle downloade alle projektets afh\u00e6ngigheder igen, hvilket er langsomt og ineffektivt, og tid er penge.<\/li>\n<\/ul>\n<p><\/p>\n<p>Udviklere samler ikke projekter i Docker-containere (jeg var engang s\u00e5dan en fanatiker, men det er synd for mit tidligere jeg xD). I Java er der mulighed for at have flere versioner og skifte til den, der er n\u00f8dvendig med \u00e9t kommando. Det samme g\u00e6lder for Node.js, der findes nvm.<\/p>\n<p><\/p>\n<h2>Output<\/h2>\n<p><\/p>\n<p>Jeg mener, at Docker er et meget kraftfuldt og fleksibelt v\u00e6rkt\u00f8j; i det ligger ogs\u00e5 dets ulempe (det lyder m\u00e6rkeligt, ikke?). Ved hj\u00e6lp af det bliver virksomheder nemt \"afh\u00e6ngige\" af det, bruger det hvor det er n\u00f8dvendigt og un\u00f8dvendigt. Udviklerne k\u00f8rer deres containere, et s\u00e6rligt milj\u00f8, og alt dette glider derefter stille over i CI og produktion. DevOps-teamet skriver nogle specielle l\u00f8sninger for at starte disse containere.<\/p>\n<p><\/p>\n<p>Brug Docker kun p\u00e5 <strong>det allerbedste<\/strong> trin i din arbejdsgang, tag ikke det ind i projektet fra starten. Det l\u00f8ser ikke dine forretningsproblemer. Det vil kun flytte problemerne til et ANDET niveau og tilbyde sine egne l\u00f8sningsmuligheder, og du vil g\u00f8re dobbelt arbejde.<\/p>\n<p><\/p>\n<p><strong><em>N\u00e5r Docker er n\u00f8dvendigt<\/em><\/strong>: jeg er n\u00e5et frem til, at Docker er meget godt til optimering af den etablerede proces, men ikke til opbygning af grundl\u00e6ggende funktionalitet.<\/p>\n<p><\/p>\n<p>Hvis du alligevel har besluttet at bruge Docker, s\u00e5:<\/p>\n<p><\/p>\n<ul>\n<li>v\u00e6r yderst forsigtig<\/li>\n<li>p\u00e5tvung ikke brugen af Docker til udviklerne<\/li>\n<li>lokaliser dets brug \u00e9t sted, spred ikke Dockerfile og docker-compose ud over alle repositories.<\/li>\n<\/ul>\n<p><\/p>\n<p>PS:<\/p>\n<p><\/p>\n<ul>\n<li>For nylig st\u00f8dte jeg p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.packer.io\/\">packer<\/a><\/noindex> Og de siger, at det fungerer meget godt med Ansible og g\u00f8r det muligt at standardisere processen for opbygning af billeder (inklusive docker image)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.smashcompany.com\/technology\/docker-is-a-dangerous-gamble-which-we-will-regret\">Ogs\u00e5 om docker, interessant artikel<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Tak fordi du l\u00e6ste med, jeg \u00f8nsker dig klare l\u00f8sninger i dine forretninger og produktive arbejdsdage!<\/p>\n<p>Kilde: <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\/da\/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=\"da_DK\" \/>\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\/da\/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 \u2013 er det en leg eller ikke? Eller m\u00e5ske ja?","description":"Hej alle sammen! Jeg kan virkelig ikke vente med at komme i gang med emnet, men det ville v\u00e6re bedre at tale lidt om min historie: Introduktion Jeg er programm\u00f8r med erfaring inden for frontendudvikling.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/docker-eto-igrushka-ili-net-ili-vsyo-taki-da","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/31641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=31641"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/31641\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=31641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=31641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=31641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}