{"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\/sv\/blog\/administrirovanie\/ponimaya-docker","title":{"rendered":"F\u00f6rst\u00e5 Docker","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Jag har anv\u00e4nt Docker i flera m\u00e5nader f\u00f6r att strukturera utvecklings-\/leveransprocessen f\u00f6r webprojekt. Jag erbjuder l\u00e4sarna p\u00e5 \"Habr\" en \u00f6vers\u00e4ttning av den introducerande artikeln om Docker \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/introduction\/understanding-docker\/\">\"F\u00f6rst\u00e5 Docker\"<\/a><\/noindex>.<\/i><\/p>\n<h3>Vad \u00e4r Docker?<\/h3>\n<p>\nDocker \u00e4r en \u00f6ppen plattform f\u00f6r utveckling, leverans och drift av applikationer. Docker \u00e4r utformat f\u00f6r att snabbare distribuera dina applikationer. Med Docker kan du isolera din applikation fr\u00e5n din infrastruktur och hantera infrastrukturen som en hanterad tj\u00e4nst. Docker hj\u00e4lper dig att distribuera din kod snabbare, testa snabbare, lansera applikationer snabbare och minska tiden mellan att skriva kod och k\u00f6ra den. Docker g\u00f6r detta med en l\u00e4ttviktsplattform f\u00f6r containervirtualisering, med hj\u00e4lp av processer och verktyg som hj\u00e4lper till att hantera och distribuera dina applikationer.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nI sin k\u00e4rna l\u00e5ter Docker dig k\u00f6ra praktiskt taget vilken applikation som helst, s\u00e4kert isolerad i en container. Den s\u00e4kra isoleringen g\u00f6r att du kan k\u00f6ra m\u00e5nga containrar p\u00e5 en och samma v\u00e4rd samtidigt. Den l\u00e4tta naturen hos containern, som k\u00f6rs utan extra belastning fr\u00e5n en hypervisor, g\u00f6r att du kan f\u00e5 mer ut av din h\u00e5rdvara.<\/p>\n<p>Plattformen och verktygen f\u00f6r containervirtualisering kan vara anv\u00e4ndbara i f\u00f6ljande fall:<\/p>\n<ul>\n<li>paketering av din applikation (och \u00e4ven anv\u00e4nda komponenter) i Docker-containrar;<\/li>\n<li>distribuering och leverans av dessa containrar till dina team f\u00f6r utveckling och testning;<\/li>\n<li>distribuering av dessa containrar till produktionen, b\u00e5de i datacenter och i molnet.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Vad kan jag anv\u00e4nda Docker till?<\/h3>\n<p><\/p>\n<h4>Snabb distribution av dina applikationer<\/h4>\n<p>\nDocker \u00e4r perfekt f\u00f6r att organisera utvecklingscykeln. Docker g\u00f6r det m\u00f6jligt f\u00f6r utvecklare att anv\u00e4nda lokala containrar med applikationer och tj\u00e4nster. Detta m\u00f6jligg\u00f6r senare integration med processen f\u00f6r kontinuerlig integration och distribution (CI\/CD-arbetsfl\u00f6de).<\/p>\n<p>Till exempel skriver dina utvecklare kod lokalt och delar sin utvecklingsmilj\u00f6 (upps\u00e4ttning Docker-bilder) med kollegor. N\u00e4r de \u00e4r redo, skickar de koden och containrarna till testmilj\u00f6n och k\u00f6r alla n\u00f6dv\u00e4ndiga tester. Fr\u00e5n testmilj\u00f6n kan de skicka koden och bilderna till produktionen.<\/p>\n<h4>Enklare distribution och implementering<\/h4>\n<p>\nDen containerbaserade Docker-plattformen g\u00f6r det enkelt att portera din arbetsbelastning. Docker-containrar kan k\u00f6ras p\u00e5 din lokala maskin, b\u00e5de p\u00e5 fysisk och virtuell maskin i datacentret, samt i molnet.<\/p>\n<p>Portabiliteten och den l\u00e4tta naturen hos Docker g\u00f6r det enkelt att dynamiskt hantera din belastning. Du kan anv\u00e4nda Docker f\u00f6r att distribuera eller st\u00e4nga av din applikation eller tj\u00e4nster. Docker ger en hastighet som g\u00f6r detta m\u00f6jligt n\u00e4stan i realtid.<\/p>\n<h4>H\u00f6ga belastningar och fler arbetsbelastningar<\/h4>\n<p>\nDocker \u00e4r l\u00e4ttviktig och snabb. Den erbjuder en h\u00e5llbar, kostnadseffektiv alternativ till virtuell maskin baserad p\u00e5 hypervisor. Den \u00e4r s\u00e4rskilt anv\u00e4ndbar under h\u00f6g belastning, exempelvis vid skapande av ett eget moln eller plattform som tj\u00e4nst (platform-as-service). Men den \u00e4r ocks\u00e5 anv\u00e4ndbar f\u00f6r sm\u00e5 och medelstora applikationer n\u00e4r du vill f\u00e5 mer ut av dina befintliga resurser.<\/p>\n<h3>Huvudkomponenter i Docker<\/h3>\n<p>\nDocker best\u00e5r av tv\u00e5 huvudkomponenter:<\/p>\n<ul>\n<li>Docker: en plattform f\u00f6r virtualisering med \u00f6ppen kod;<\/li>\n<li>Docker Hub: v\u00e5r plattform som tj\u00e4nst f\u00f6r distribution och hantering av Docker-containrar.<\/li>\n<\/ul>\n<p>\n<i>Obs! Docker distribueras under Apache 2.0-licensen.<\/i><\/p>\n<h3>Docker-arkitektur<\/h3>\n<p><\/p>\n<p>Docker anv\u00e4nder en klient-server-arkitektur. Docker-klienten kommunicerar med Docker-demonen, som tar hand om tyngden av att skapa, k\u00f6ra och distribuera dina containrar. B\u00e5de klient och server kan k\u00f6ras p\u00e5 samma system, och du kan ansluta klienten till en extern Docker-demon. Klienten och servern kommunicerar via en socket eller via ett RESTful API.<\/p>\n<p><img decoding=\"async\" alt=\"F\u00f6rst\u00e5 Docker\" src=\"\/wp-content\/uploads\/2019\/08\/eb67e625e776737163e49a41829ed102.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Docker-demon<\/h4>\n<p>\nSom visas i diagrammet k\u00f6rs demon p\u00e5 v\u00e4rdmaskinen. Anv\u00e4ndaren interagerar inte direkt med servern utan anv\u00e4nder klienten f\u00f6r detta.<\/p>\n<h4>Docker-klient<\/h4>\n<p>\nDocker-klienten, programmet Docker, \u00e4r huvudgr\u00e4nssnittet till Docker. Den f\u00e5r kommandon fr\u00e5n anv\u00e4ndaren och interagerar med Docker-demonen.<\/p>\n<h4>Inuti Docker<\/h4>\n<p>\nF\u00f6r att f\u00f6rst\u00e5 vad Docker best\u00e5r av, m\u00e5ste du veta om tre komponenter:<\/p>\n<ul>\n<li>bilder (images)<\/li>\n<li>register (registries)<\/li>\n<li>containrar<\/li>\n<\/ul>\n<h4>Avbilder<\/h4>\n<p>\nEn Docker-avbildning \u00e4r en read-only mall. Till exempel kan en avbildning inneh\u00e5lla operativsystemet Ubuntu med Apache och en applikation p\u00e5 den. Avbildningar anv\u00e4nds f\u00f6r att skapa containrar. Docker g\u00f6r det enkelt att skapa nya avbildningar, uppdatera befintliga, eller s\u00e5 kan du ladda ner avbildningar skapade av andra. Avbildningar \u00e4r en komponent av Docker.<\/p>\n<h4>Register<\/h4>\n<p>\nDocker-registret lagrar avbildningar. Det finns offentliga och privata register d\u00e4r du kan ladda ner eller ladda upp avbildningar. Det offentliga Docker-registret \u00e4r <noindex><a rel=\"nofollow\" href=\"http:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. H\u00e4r lagras en enorm samling avbildningar. Som du vet kan avbildningar skapas av dig, eller s\u00e5 kan du anv\u00e4nda avbildningar skapade av andra. Register \u00e4r en komponent av distribution.<\/p>\n<h4>Containrar<\/h4>\n<p>\nContainrar liknar kataloger. I containrar finns allt som beh\u00f6vs f\u00f6r att k\u00f6ra en applikation. Varje container skapas fr\u00e5n en avbildning. Containrar kan skapas, startas, stoppas, flyttas eller tas bort. Varje container \u00e4r isolerad och \u00e4r en s\u00e4ker plattform f\u00f6r applikationen. Containrar \u00e4r en komponent av driften.<\/p>\n<h4>Hur fungerar d\u00e5 Docker?<\/h4>\n<p>\nVi vet s\u00e5 h\u00e4r l\u00e5ngt att:<\/p>\n<ul>\n<li>vi kan skapa avbildningar som inneh\u00e5ller v\u00e5ra applikationer;<\/li>\n<li>vi kan skapa containrar fr\u00e5n avbildningar f\u00f6r att k\u00f6ra applikationer;<\/li>\n<li>vi kan distribuera avbildningar genom Docker Hub eller ett annat avbildningsregister.<\/li>\n<\/ul>\n<p>\nL\u00e5t oss se hur dessa komponenter sammanfaller.<\/p>\n<h4>Hur fungerar en avbildning?<\/h4>\n<p>\nVi vet redan att en avbildning \u00e4r en read-only mall fr\u00e5n vilken en container skapas. Varje avbildning best\u00e5r av en upps\u00e4ttning lager. Docker anv\u00e4nder <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/UnionFS\">union file system<\/a><\/noindex> f\u00f6r att kombinera dessa lager till en avbildning. Union file system till\u00e5ter filer och kataloger fr\u00e5n olika filsystem (olika grenar) att transparent \u00f6verlagras och skapa ett enhetligt filsystem.<\/p>\n<p>En av anledningarna till att Docker \u00e4r l\u00e4ttviktig \u00e4r anv\u00e4ndningen av s\u00e5dana lager. N\u00e4r du \u00e4ndrar en avbildning, till exempel uppdaterar en applikation, skapas ett nytt lager. S\u00e5, utan att ers\u00e4tta hela avbildningen eller bygga om den, som du kanske beh\u00f6ver g\u00f6ra med en virtuell maskin, l\u00e4ggs endast lagret till eller uppdateras. Och du beh\u00f6ver inte distribuera hela den nya avbildningen, endast uppdateringen delas ut, vilket g\u00f6r att avbildningar kan distribueras enklare och snabbare.<\/p>\n<p>I grunden f\u00f6r varje bild finns en basbild. Till exempel, ubuntu, basbilden f\u00f6r Ubuntu, eller fedora, basbilden f\u00f6r Fedora-distributionen. Du kan ocks\u00e5 anv\u00e4nda bilder som bas f\u00f6r att skapa nya bilder. Till exempel, om du har en bild av apache, kan du anv\u00e4nda den som basbild f\u00f6r dina webbapplikationer.<\/p>\n<p><i>Notera! Docker h\u00e4mtar vanligtvis bilder fr\u00e5n Docker Hub-registret.<\/i><\/p>\n<p>Dockerbilder kan skapas fr\u00e5n dessa basbilder, stegen f\u00f6r att skapa dessa bilder kallar vi instruktioner. Varje instruktion skapar en ny bild eller niv\u00e5. Instruktionerna kommer att vara f\u00f6ljande \u00e5tg\u00e4rder:<\/p>\n<p><\/p>\n<ul>\n<li>k\u00f6rning av kommando<\/li>\n<li>till\u00e4gg av fil eller katalog<\/li>\n<li>skapa en omgivningsvariabel<\/li>\n<li>ange vad som ska k\u00f6ras n\u00e4r den h\u00e4r bildens container startas<\/li>\n<\/ul>\n<p>Dessa instruktioner lagras i en fil <code>Dockerfile<\/code>. Docker l\u00e4ser detta <code>Dockerfile<\/code>, n\u00e4r du bygger bilden, utf\u00f6r dessa instruktioner, och returnerar den slutliga bilden.<\/p>\n<h4>Hur fungerar docker-registret?<\/h4>\n<p>\nRegistret \u00e4r ett f\u00f6rr\u00e5d av dockerbilder. Efter att ha skapat en bild kan du publicera den p\u00e5 det offentliga registret Docker Hub eller p\u00e5 ditt eget personliga register.<\/p>\n<p>Med hj\u00e4lp av dockerklienten kan du s\u00f6ka efter redan publicerade bilder och ladda ner dem till din maskin med docker f\u00f6r att skapa containrar.<\/p>\n<p>Docker Hub erbjuder offentliga och privata f\u00f6rr\u00e5d av bilder. S\u00f6kning och nedladdning av bilder fr\u00e5n offentliga f\u00f6rr\u00e5d \u00e4r tillg\u00e4nglig f\u00f6r alla. Inneh\u00e5llet i privata f\u00f6rr\u00e5d syns inte i s\u00f6kresultaten. Endast du och dina anv\u00e4ndare kan h\u00e4mta dessa bilder och skapa containrar fr\u00e5n dem.<\/p>\n<h4>Hur fungerar en container?<\/h4>\n<p>\nEn container best\u00e5r av ett operativsystem, anv\u00e4ndarfiler och metadata. Som vi vet, skapas varje container fr\u00e5n en bild. Denna bild talar om f\u00f6r docker vad som finns i containern, vilken process som ska startas n\u00e4r containern startas och annan konfigurationsdata. Dockerbilden \u00e4r skrivskyddad. N\u00e4r docker startar en container, skapar den ett lager f\u00f6r l\u00e4sning\/skrivning ovanp\u00e5 bilden (anv\u00e4nder en union filsystem, som n\u00e4mnts tidigare), d\u00e4r en applikation kan k\u00f6ras.<\/p>\n<h4>Vad h\u00e4nder n\u00e4r en container startas?<\/h4>\n<p>\nAntingen med hj\u00e4lp av programmet <code>docker<\/code>, eller genom RESTful API, s\u00e4ger dockerklienten till docker-demonen att starta containern.<\/p>\n<p><code>$ sudo docker run -i -t ubuntu \/bin\/bash<br \/>\n<\/code><br \/>\nL\u00e5t oss reda ut denna kommando. Klienten startar med kommandot <code>docker<\/code>, med alternativet <code>run<\/code>, som anger att en ny container kommer att startas. Minimi krav f\u00f6r att starta containern \u00e4r f\u00f6ljande attribut:<\/p>\n<ul>\n<li>vilken bild som ska anv\u00e4ndas f\u00f6r att skapa containern. I v\u00e5rt fall <code>ubuntu<\/code><\/li>\n<li>kommandot som du vill k\u00f6ra n\u00e4r containern startas. I v\u00e5rt fall <code>\/bin\/bash<\/code><\/li>\n<\/ul>\n<p>Vad h\u00e4nder egentligen bakom kulisserna n\u00e4r vi k\u00f6r detta kommando?<\/p>\n<p>Docker g\u00f6r f\u00f6ljande i ordning:<\/p>\n<ul>\n<li><b>laddar ner bild av ubuntu:<\/b> docker kontrollerar om bilden finns <code>ubuntu<\/code> p\u00e5 den lokala maskinen, och om den inte finns \u2014 laddar ner den fr\u00e5n <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Om bilden redan finns, anv\u00e4nds den f\u00f6r att skapa containern;<\/li>\n<li><b>skapar containern:<\/b> n\u00e4r bilden har mottagits, anv\u00e4nder docker den f\u00f6r att skapa containern;<\/li>\n<li><b>initialiserar filsystemet och monterar read-only niv\u00e5n:<\/b> containern skapas i filsystemet och read-only niv\u00e5n l\u00e4ggs till bilden;<\/li>\n<li><b>initialiserar n\u00e4tverket\/bro:<\/b> skapar ett n\u00e4tverksgr\u00e4nssnitt som till\u00e5ter docker att kommunicera med v\u00e4rdmaskinen;<\/li>\n<li><b>S\u00e4tter IP-adress:<\/b> hittar och anger adress;<\/li>\n<li><b>Startar angiven process:<\/b> startar din applikation;<\/li>\n<li><b>Behandlar och ger utdata fr\u00e5n din applikation:<\/b> ansluter och loggar standardin, ut och felstr\u00f6m fr\u00e5n din applikation s\u00e5 att du kan \u00f6vervaka hur din applikation fungerar.<\/li>\n<\/ul>\n<p>\nNu har du en fungerande container. Du kan hantera din container, interagera med din applikation. N\u00e4r du vill stoppa applikationen, ta bort containern.<\/p>\n<h3>Anv\u00e4nda teknologier<\/h3>\n<p>\nDocker \u00e4r skrivet i Go och anv\u00e4nder vissa funktioner fr\u00e5n Linux-k\u00e4rnan f\u00f6r att implementera ovanst\u00e5ende funktionalitet.<\/p>\n<h4>Namnrymder (namespaces)<\/h4>\n<p>\nDocker anv\u00e4nder teknologin <code>namnrymder<\/code> f\u00f6r att organisera isolerade arbetsytor, som vi kallar containrar. N\u00e4r vi startar en container skapar docker en upps\u00e4ttning namnrymder f\u00f6r den containern.<\/p>\n<p>Detta skapar en isolerad niv\u00e5, varje aspekt av containern k\u00f6rs i sin egen namnrymd och har inte tillg\u00e5ng till det externa systemet.<\/p>\n<p>Lista \u00f6ver n\u00e5gra namnrymder som docker anv\u00e4nder:<\/p>\n<ul>\n<li><b>pid:<\/b> f\u00f6r isolering av processen;<\/li>\n<li><b>net:<\/b> f\u00f6r att hantera n\u00e4tverksgr\u00e4nssnitt;<\/li>\n<li><b>ipc:<\/b> f\u00f6r att hantera IPC-resurser. (ICP: InterProccess Communication);<\/li>\n<li><b>mnt:<\/b> f\u00f6r att hantera monteringspunkter;<\/li>\n<li><b>utc:<\/b> f\u00f6r isolering av k\u00e4rnan och kontroll av versionsgenerering (UTC: Unix time-sharing system).<\/li>\n<\/ul>\n<h4>Kontrollgrupper (Control groups)<\/h4>\n<p>\nDocker anv\u00e4nder ocks\u00e5 teknologin <code>cgroups<\/code> eller kontrollgrupper. Nyckeln till att k\u00f6ra applikationen i isolering \u00e4r att endast tillhandah\u00e5lla applikationen de resurser som du vill ge. Detta s\u00e4kerst\u00e4ller att containrarna \u00e4r bra grannar. Kontrollgrupper m\u00f6jligg\u00f6r f\u00f6rdelning av tillg\u00e4ngliga h\u00e5rdvaruresurser och kan om s\u00e5 beh\u00f6vs st\u00e4lla in gr\u00e4nser och begr\u00e4nsningar. Till exempel, begr\u00e4nsa den m\u00f6jliga m\u00e4ngden minne f\u00f6r en container.<\/p>\n<h4>Union File System<\/h4>\n<p>\nUnion File System eller UnionFS \u00e4r ett filsystem som fungerar genom att skapa lager, vilket g\u00f6r det mycket l\u00e4tt och snabbt. Docker anv\u00e4nder UnionFS f\u00f6r att skapa block som en container byggs av. Docker kan anv\u00e4nda flera varianter av UnionFS inklusive: AUFS, btrfs, vfs och DeviceMapper.<\/p>\n<h4>Containerformat<\/h4>\n<p>\nDocker kombinerar dessa komponenter i ett omslag som vi kallar containerformat. Formatet som anv\u00e4nds som standard kallas <code>libcontainer<\/code>. Docker st\u00f6der ocks\u00e5 det traditionella containerformatet i Linux via <noindex><a rel=\"nofollow\" href=\"http:\/\/linuxcontainers.org\">LXC<\/a><\/noindex>. I framtiden kan Docker komma att st\u00f6dja andra containerformat. Till exempel, genom att integrera med BSD Jails eller Solaris Zones.<br \/>\n<br \/>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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\udd47 Att f\u00f6rst\u00e5 Docker | ProHoster","description":"Jag har anv\u00e4nt Docker i flera m\u00e5nader f\u00f6r att strukturera utvecklings-\/leveransprocessen f\u00f6r webbprojekt.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/ponimaya-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/36772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=36772"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/36772\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=36772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=36772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=36772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}