{"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\/hu\/blog\/administrirovanie\/ponimaya-docker","title":{"rendered":"Docker meg\u00e9rt\u00e9se","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>M\u00e1r t\u00f6bb h\u00f3napja haszn\u00e1lom a dockert a webes projektek fejleszt\u00e9si \u00e9s sz\u00e1ll\u00edt\u00e1si folyamat\u00e1nak strukt\u00far\u00e1z\u00e1s\u00e1ra. A \u00abHabrHabr\u00bb olvas\u00f3inak aj\u00e1nlom a docker bevezet\u0151 cikk\u00e9nek ford\u00edt\u00e1s\u00e1t \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.docker.com\/introduction\/understanding-docker\/\">\u201eA docker meg\u00e9rt\u00e9se\u201d<\/a><\/noindex>.<\/i><\/p>\n<h3>Mi az a docker?<\/h3>\n<p>\nA docker egy ny\u00edlt platform az alkalmaz\u00e1sok fejleszt\u00e9s\u00e9re, sz\u00e1ll\u00edt\u00e1s\u00e1ra \u00e9s \u00fczemeltet\u00e9s\u00e9re. A Dockert az\u00e9rt fejlesztett\u00e9k ki, hogy gyorsabban k\u00e9sz\u00edthesse el alkalmaz\u00e1sait. A docker seg\u00edts\u00e9g\u00e9vel elv\u00e1laszthatja az alkalmaz\u00e1s\u00e1t az infrastrukt\u00far\u00e1j\u00e1t\u00f3l, \u00e9s az infrastrukt\u00far\u00e1t kezelhet\u0151 alkalmaz\u00e1sk\u00e9nt kezelheti. A docker seg\u00edt gyorsabban kiadni a k\u00f3dj\u00e1t, gyorsabban tesztelni, gyorsabban kiadni az alkalmaz\u00e1sokat, \u00e9s cs\u00f6kkenteni a k\u00f3d\u00edr\u00e1s \u00e9s a k\u00f3d futtat\u00e1sa k\u00f6z\u00f6tti id\u0151t. A docker ezt egy k\u00f6nny\u0171 kont\u00e9nervirtualiz\u00e1l\u00f3 platform seg\u00edts\u00e9g\u00e9vel val\u00f3s\u00edtja meg, mely folyamatokat \u00e9s eszk\u00f6z\u00f6ket haszn\u00e1l az alkalmaz\u00e1sok kezel\u00e9s\u00e9ben \u00e9s kiad\u00e1s\u00e1ban.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nA docker alapvet\u0151en lehet\u0151v\u00e9 teszi szinte b\u00e1rmely alkalmaz\u00e1s biztons\u00e1gos, kont\u00e9nerbe z\u00e1rt futtat\u00e1s\u00e1t. A biztons\u00e1gos izol\u00e1ci\u00f3 lehet\u0151v\u00e9 teszi, hogy egy hoston t\u00f6bb kont\u00e9nert is egyidej\u0171leg futtasson. A kont\u00e9ner k\u00f6nny\u0171 term\u00e9szet\u00e9nek k\u00f6sz\u00f6nhet\u0151en, amely tov\u00e1bbi hipervizor terhel\u00e9s n\u00e9lk\u00fcl indul el, t\u00f6bbet hozhat ki a hardver\u00e9b\u0151l.<\/p>\n<p>A kont\u00e9nervirtualiz\u00e1l\u00f3 platform \u00e9s eszk\u00f6z\u00f6k hasznosak lehetnek a k\u00f6vetkez\u0151 esetekben:<\/p>\n<ul>\n<li>az alkalmaz\u00e1sa (\u00e9s az abban haszn\u00e1lt \u00f6sszes komponens) csomagol\u00e1s\u00e1ra docker kont\u00e9nerekbe;<\/li>\n<li>ezeknek a kont\u00e9nereknek a megoszt\u00e1s\u00e1ra \u00e9s sz\u00e1ll\u00edt\u00e1s\u00e1ra csapataik sz\u00e1m\u00e1ra a fejleszt\u00e9shez \u00e9s tesztel\u00e9shez;<\/li>\n<li>ezeknek a kont\u00e9nereknek a kiad\u00e1s\u00e1ra a produkci\u00f3s k\u00f6rnyezet\u00fckbe, legyen sz\u00f3 adatk\u00f6zpontokr\u00f3l vagy felh\u0151r\u0151l.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Mire haszn\u00e1lhatom a dockert?<\/h3>\n<p><\/p>\n<h4>Alkalmaz\u00e1saink gyors kiad\u00e1sa<\/h4>\n<p>\nA docker kiv\u00e1l\u00f3an alkalmas a fejleszt\u00e9si ciklus megszervez\u00e9s\u00e9re. A docker lehet\u0151v\u00e9 teszi a fejleszt\u0151k sz\u00e1m\u00e1ra, hogy helyi kont\u00e9nereket haszn\u00e1ljanak az alkalmaz\u00e1saikkal \u00e9s szolg\u00e1ltat\u00e1saikkal. Ez lehet\u0151v\u00e9 teszi a folyamatos integr\u00e1ci\u00f3s \u00e9s kiad\u00e1si folyamatba (CI\/CD) val\u00f3 integr\u00e1ci\u00f3t.<\/p>\n<p>P\u00e9ld\u00e1ul a fejleszt\u0151ink helyben \u00edrj\u00e1k a k\u00f3dot, \u00e9s megosztj\u00e1k fejleszt\u00e9si stackj\u00fcket (docker k\u00e9pekb\u0151l \u00e1ll\u00f3 k\u00e9szlet) koll\u00e9g\u00e1ikkal. Amikor k\u00e9szen \u00e1llnak, elk\u00fcldik a k\u00f3dot \u00e9s a kont\u00e9nereket a tesztel\u00e9si k\u00f6rnyezetbe, \u00e9s elind\u00edtanak minden sz\u00fcks\u00e9ges tesztet. A tesztk\u00f6rnyezetb\u0151l a k\u00f3dot \u00e9s a k\u00e9peket a produkci\u00f3ba k\u00fcldhetik.<\/p>\n<h4>Egyszer\u0171bb kiad\u00e1s \u00e9s telep\u00edt\u00e9s<\/h4>\n<p>\nA kont\u00e9neralap\u00fa Docker platform lehet\u0151v\u00e9 teszi a terhel\u00e9s k\u00f6nny\u0171 port\u00e1l\u00e1s\u00e1t. A Docker kont\u00e9nerek a helyi g\u00e9p\u00e9n, val\u00f3s g\u00e9p\u00e9n, virtu\u00e1lis g\u00e9pen a datacenterben vagy a felh\u0151ben is m\u0171k\u00f6dhetnek.<\/p>\n<p>A Docker hordozhat\u00f3s\u00e1ga \u00e9s k\u00f6nny\u0171s\u00e9ge lehet\u0151v\u00e9 teszi a terhel\u00e9s dinamikus kezel\u00e9s\u00e9t. Haszn\u00e1lhatja a Dockert alkalmaz\u00e1sa vagy szolg\u00e1ltat\u00e1sa telep\u00edt\u00e9s\u00e9re vagy le\u00e1ll\u00edt\u00e1s\u00e1ra. A Docker sebess\u00e9ge ezt szinte val\u00f3s id\u0151ben lehet\u0151v\u00e9 teszi.<\/p>\n<h4>Magas terhel\u00e9sek \u00e9s nagyobb hasznos terhel\u00e9sek<\/h4>\n<p>\nA Docker k\u00f6nny\u0171 \u00e9s gyors. Tart\u00f3s, k\u00f6lts\u00e9ghat\u00e9kony alternat\u00edv\u00e1t ny\u00fajt a hipervizor alap\u00fa virtu\u00e1lis g\u00e9pekhez k\u00e9pest. K\u00fcl\u00f6n\u00f6sen hasznos nagy terhel\u00e9sek mellett, p\u00e9ld\u00e1ul saj\u00e1t felh\u0151 l\u00e9trehoz\u00e1sakor vagy platformszolg\u00e1ltat\u00e1sk\u00e9nt (platform-as-service). Ugyanakkor kis- \u00e9s k\u00f6zepes alkalmaz\u00e1sokhoz is hasznos, amikor maxim\u00e1lisan ki szeretn\u00e9 haszn\u00e1lni a megl\u00e9v\u0151 er\u0151forr\u00e1sokat.<\/p>\n<h3>A Docker f\u0151 komponensei<\/h3>\n<p>\nA Docker k\u00e9t f\u0151 komponensb\u0151l \u00e1ll:<\/p>\n<ul>\n<li>Docker: ny\u00edlt forr\u00e1sk\u00f3d\u00fa virtualiz\u00e1ci\u00f3s platform;<\/li>\n<li>Docker Hub: a Docker kont\u00e9nerek terjeszt\u00e9s\u00e9re \u00e9s kezel\u00e9s\u00e9re szolg\u00e1l\u00f3 platformszolg\u00e1ltat\u00e1s.<\/li>\n<\/ul>\n<p>\n<i>Megjegyz\u00e9s! A Docker az Apache 2.0 licenc szerint terjeszt\u00e9sre ker\u00fcl.<\/i><\/p>\n<h3>A Docker architekt\u00far\u00e1ja<\/h3>\n<p><\/p>\n<p>A Docker kliens-szerver architekt\u00far\u00e1t haszn\u00e1l. A Docker kliens kommunik\u00e1l a Docker d\u00e9monnal, amely felel\u0151s a kont\u00e9nerek l\u00e9trehoz\u00e1s\u00e1\u00e9rt, ind\u00edt\u00e1s\u00e1\u00e9rt \u00e9s eloszt\u00e1s\u00e1\u00e9rt. Mind a kliens, mind a szerver m\u0171k\u00f6dhet ugyanazon a rendszeren, de a kliens kapcsol\u00f3dhat egy t\u00e1voli Docker d\u00e9monhoz is. A kliens \u00e9s a szerver socketen vagy RESTful API-n kereszt\u00fcl kommunik\u00e1lnak.<\/p>\n<p><img decoding=\"async\" alt=\"Docker meg\u00e9rt\u00e9se\" src=\"\/wp-content\/uploads\/2019\/08\/eb67e625e776737163e49a41829ed102.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Docker d\u00e9mon<\/h4>\n<p>\nA diagramon l\u00e1that\u00f3 m\u00f3don a d\u00e9mon a gazdag\u00e9pen fut. A felhaszn\u00e1l\u00f3 nem k\u00f6zvetlen\u00fcl l\u00e9p kapcsolatba a szerverrel, hanem a kliens programon kereszt\u00fcl teszi azt.<\/p>\n<h4>Docker kliens<\/h4>\n<p>\nA Docker kliens, a Docker program \u2014 a f\u0151 interf\u00e9sz a Docker-hez. Parancsokat kap a felhaszn\u00e1l\u00f3t\u00f3l \u00e9s kommunik\u00e1l a Docker d\u00e9monnal.<\/p>\n<h4>A Docker belsej\u00e9ben<\/h4>\n<p>\nAhhoz, hogy meg\u00e9rts\u00fck, mib\u0151l \u00e1ll a Docker, tudnunk kell h\u00e1rom komponensr\u0151l:<\/p>\n<ul>\n<li>k\u00e9pek (images)<\/li>\n<li>regiszterek (registries)<\/li>\n<li>kont\u00e9nerek<\/li>\n<\/ul>\n<h4>K\u00e9pek<\/h4>\n<p>\nA Docker image is a read-only template. For example, an image can contain the Ubuntu operating system with Apache and an application running on it. Images are used to create containers. Docker makes it easy to create new images, update existing ones, or you can download images created by others. Images are a component of Docker assembly.<\/p>\n<h4>Regiszter<\/h4>\n<p>\nA Docker-regiszter t\u00e1rolja az images. Vannak nyilv\u00e1nos \u00e9s priv\u00e1t regiszterek, ahonnan let\u00f6lthet\u00fcnk vagy felt\u00f6lthet\u00fcnk imaget. A nyilv\u00e1nos Docker-regiszter az <noindex><a rel=\"nofollow\" href=\"http:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Itt hatalmas gy\u0171jtem\u00e9ny tal\u00e1lhat\u00f3 az imagetekb\u0151l. Ahogy tudjuk, az images lehetnek a saj\u00e1tjaink, vagy haszn\u00e1lhatunk m\u00e1sok \u00e1ltal k\u00e9sz\u00edtett k\u00e9peket. A regiszterek a terjeszt\u00e9s egy alkot\u00f3elemei.<\/p>\n<h4>Kont\u00e9nerek<\/h4>\n<p>\nA kont\u00e9nerek hasonl\u00edtanak a k\u00f6nyvt\u00e1rakra. A kont\u00e9nerek tartalmazz\u00e1k mindazt, amire az alkalmaz\u00e1s m\u0171k\u00f6d\u00e9s\u00e9hez sz\u00fcks\u00e9g van. Minden kont\u00e9ner egy image-b\u0151l k\u00e9sz\u00fcl. A kont\u00e9nereket l\u00e9trehozz\u00e1k, elind\u00edtj\u00e1k, le\u00e1ll\u00edtj\u00e1k, \u00e1thelyezik vagy t\u00f6rlik. Minden kont\u00e9ner elszigetelt \u00e9s biztons\u00e1gos platform az alkalmaz\u00e1sok sz\u00e1m\u00e1ra. A kont\u00e9nerek a m\u0171k\u00f6d\u00e9s egyik alkot\u00f3elemei.<\/p>\n<h4>Hogyan m\u0171k\u00f6dik a Docker?<\/h4>\n<p>\nEddig azt tudjuk, hogy:<\/p>\n<ul>\n<li>k\u00e9pesek vagyunk imaget l\u00e9trehozni, amelyek tartalmazz\u00e1k az alkalmaz\u00e1sainkat;<\/li>\n<li>k\u00e9pesek vagyunk kont\u00e9nereket l\u00e9trehozni imaget-b\u00f3l az alkalmaz\u00e1sok futtat\u00e1s\u00e1ra;<\/li>\n<li>k\u00e9pesek vagyunk terjeszteni az images-t a Docker Hub-on vagy m\u00e1s image-regisztereken.<\/li>\n<\/ul>\n<p>\nN\u00e9zz\u00fck meg, hogyan illeszkednek ezek az \u00f6sszetev\u0151k egym\u00e1shoz.<\/p>\n<h4>Hogyan m\u0171k\u00f6dik az image?<\/h4>\n<p>\nM\u00e1r tudjuk, hogy az image egy read-only sablon, amelyb\u0151l kont\u00e9ner k\u00e9sz\u00fcl. Minden image egy szintk\u00e9szletb\u0151l \u00e1ll. A Docker a <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/UnionFS\">union file system<\/a><\/noindex> -ot haszn\u00e1lja ezen szintek egy k\u00e9pp\u00e9 val\u00f3 kombin\u00e1l\u00e1s\u00e1ra. A union file system lehet\u0151v\u00e9 teszi, hogy f\u00e1jlok \u00e9s k\u00f6nyvt\u00e1rak k\u00fcl\u00f6nb\u00f6z\u0151 f\u00e1jlrendszerekb\u0151l (k\u00fcl\u00f6nb\u00f6z\u0151 \u00e1gakb\u00f3l) \u00e1tl\u00e1that\u00f3an r\u00e1helyez\u0151djenek, \u00edgy koherens f\u00e1jlrendszert alkotva.<\/p>\n<p>Az egyik oka, ami\u00e9rt a Docker k\u00f6nny\u0171 \u2014 a szintek haszn\u00e1lata. Amikor m\u00f3dos\u00edtja az image-t, p\u00e9ld\u00e1ul friss\u00edti az alkalmaz\u00e1st, l\u00e9trej\u00f6n egy \u00faj szint. \u00cdgy nem sz\u00fcks\u00e9ges az eg\u00e9sz imaget cser\u00e9lni vagy \u00fajra \u00e9p\u00edteni, mint ami a virtu\u00e1lis g\u00e9ppel sz\u00fcks\u00e9ges lenne, csak a szint ker\u00fcl hozz\u00e1ad\u00e1sra vagy friss\u00edt\u00e9sre. Nem kell az eg\u00e9sz \u00faj imaget terjeszteni, csak a friss\u00edt\u00e9st, ami megk\u00f6nny\u00edti \u00e9s felgyors\u00edtja az images terjeszt\u00e9s\u00e9t.<\/p>\n<p>Minden k\u00e9p alapja egy alapk\u00e9p. P\u00e9ld\u00e1ul, az ubuntu, az Ubuntu alapk\u00e9pe, vagy a fedora, a Fedora eloszt\u00e1s alapk\u00e9pe. Szint\u00e9n haszn\u00e1lhat k\u00e9peket alapk\u00e9nt \u00faj k\u00e9pek l\u00e9trehoz\u00e1s\u00e1hoz. P\u00e9ld\u00e1ul, ha van egy apache k\u00e9p, ezt haszn\u00e1lhatja alapk\u00e9pk\u00e9nt webalkalmaz\u00e1saihoz.<\/p>\n<p><i>Megjegyz\u00e9s! A Docker \u00e1ltal\u00e1ban a k\u00e9peket a Docker Hub regiszterb\u0151l szerzi be.<\/i><\/p>\n<p>A Docker k\u00e9pek ezekb\u0151l az alapk\u00e9pekb\u0151l k\u00e9sz\u00fclhetnek, \u00e9s a k\u00e9pek l\u00e9trehoz\u00e1s\u00e1nak l\u00e9p\u00e9seit utas\u00edt\u00e1sokk\u00e9nt nevezik. Minden utas\u00edt\u00e1s \u00faj k\u00e9pet vagy r\u00e9teget hoz l\u00e9tre. Az utas\u00edt\u00e1sok a k\u00f6vetkez\u0151 m\u0171veletek lesznek:<\/p>\n<p><\/p>\n<ul>\n<li>parancs futtat\u00e1sa<\/li>\n<li>f\u00e1jl vagy k\u00f6nyvt\u00e1r hozz\u00e1ad\u00e1sa<\/li>\n<li>k\u00f6rnyezeti v\u00e1ltoz\u00f3 l\u00e9trehoz\u00e1sa<\/li>\n<li>utas\u00edt\u00e1s megad\u00e1sa, hogy mit kell futtatni, amikor a kont\u00e9ner elindul ebb\u0151l a k\u00e9pb\u0151l<\/li>\n<\/ul>\n<p>Ezek az utas\u00edt\u00e1sok egy f\u00e1jlban t\u00e1rol\u00f3dnak <code>Dockerfile<\/code>. A Docker ezt beolvassa, <code>Dockerfile<\/code>, amikor \u00f6sszegy\u0171jti a k\u00e9pet, v\u00e9grehajtja ezeket az utas\u00edt\u00e1sokat, \u00e9s visszaadja a v\u00e9gs\u0151 k\u00e9pet.<\/p>\n<h4>Hogyan m\u0171k\u00f6dik a docker regiszter?<\/h4>\n<p>\nA regiszter a docker k\u00e9pek t\u00e1rol\u00f3ja. A k\u00e9p l\u00e9trehoz\u00e1sa ut\u00e1n k\u00f6zz\u00e9teheti azt a nyilv\u00e1nos Docker Hub regiszterben vagy a saj\u00e1t szem\u00e9lyes regiszter\u00e9ben.<\/p>\n<p>A docker kliens seg\u00edts\u00e9g\u00e9vel m\u00e1r k\u00f6zz\u00e9tett k\u00e9peket kereshet, \u00e9s let\u00f6ltheti \u0151ket a docker g\u00e9p\u00e9re kont\u00e9nerek l\u00e9trehoz\u00e1s\u00e1hoz.<\/p>\n<p>A Docker Hub nyilv\u00e1nos \u00e9s priv\u00e1t k\u00e9pt\u00e1rol\u00f3kat biztos\u00edt. A nyilv\u00e1nos t\u00e1rol\u00f3kb\u00f3l val\u00f3 keres\u00e9s \u00e9s let\u00f6lt\u00e9s mindenki sz\u00e1m\u00e1ra el\u00e9rhet\u0151. A priv\u00e1t t\u00e1rol\u00f3k tartalma nem ker\u00fcl be a keres\u00e9si tal\u00e1latokba. Csak \u00d6n \u00e9s felhaszn\u00e1l\u00f3i \u00e9rhetik el ezeket a k\u00e9peket \u00e9s hozhatnak l\u00e9tre bel\u0151l\u00fck kont\u00e9nereket.<\/p>\n<h4>Hogyan m\u0171k\u00f6dik a kont\u00e9ner?<\/h4>\n<p>\nA kont\u00e9ner oper\u00e1ci\u00f3s rendszert, felhaszn\u00e1l\u00f3i f\u00e1jlokat \u00e9s metaadatokat tartalmaz. Mint tudjuk, minden kont\u00e9ner egy k\u00e9pb\u0151l k\u00e9sz\u00fcl. Ez a k\u00e9p megmondja a dockernak, mi tal\u00e1lhat\u00f3 a kont\u00e9nerben, mely folyamatot kell futtatni, amikor a kont\u00e9ner elindul, \u00e9s m\u00e1s konfigur\u00e1ci\u00f3s adatokat. A Docker k\u00e9p csak olvashat\u00f3. Amikor a docker kont\u00e9nert ind\u00edt, egy \u00edr\u00e1s-\/olvas\u00e1si szintet hoz l\u00e9tre a k\u00e9p f\u00f6l\u00f6tt (az uni\u00f3 f\u00e1jlrendszer haszn\u00e1lat\u00e1val, ahogy kor\u00e1bban eml\u00edtett\u00fck), amelyben alkalmaz\u00e1s futtathat\u00f3.<\/p>\n<h4>Mi t\u00f6rt\u00e9nik, amikor ind\u00edtunk egy kont\u00e9nert?<\/h4>\n<p>\nVagy program seg\u00edts\u00e9g\u00e9vel, <code>docker<\/code>, vagy RESTful API haszn\u00e1lat\u00e1val, a docker kliens megmondja a docker d\u00e9monnak, hogy ind\u00edtson egy kont\u00e9nert.<\/p>\n<p><code>$ sudo docker run -i -t ubuntu \/bin\/bash<br \/>\n<\/code><br \/>\nN\u00e9zz\u00fck meg ezt a parancsot. A kliens a <code>docker<\/code>parancs seg\u00edts\u00e9g\u00e9vel, <code>a \"run\" opci\u00f3val indul el.<\/code>, amely azt mondja, hogy \u00faj kont\u00e9ner fog indulni. A kont\u00e9ner ind\u00edt\u00e1s\u00e1nak minim\u00e1lis k\u00f6vetelm\u00e9nyei a k\u00f6vetkez\u0151 attrib\u00fatumok:<\/p>\n<ul>\n<li>milyen k\u00e9pet haszn\u00e1ljunk a kont\u00e9ner l\u00e9trehoz\u00e1s\u00e1hoz. A mi eset\u00fcnkben <code>ubuntu<\/code><\/li>\n<li>a parancsot, amelyet futtatni szeretne, amikor a kont\u00e9ner elindul. A mi eset\u00fcnkben <code>\/bin\/bash<\/code><\/li>\n<\/ul>\n<p>Mi t\u00f6rt\u00e9nik a h\u00e1tt\u00e9rben, amikor elind\u00edtjuk ezt a parancsot?<\/p>\n<p>A Docker a k\u00f6vetkez\u0151ket teszi:<\/p>\n<ul>\n<li><b>let\u00f6lt egy ubuntu: k\u00e9pet.<\/b> a Docker ellen\u0151rzi a k\u00e9p megl\u00e9t\u00e9t <code>ubuntu<\/code> a helyi g\u00e9pen, \u00e9s ha az nem tal\u00e1lhat\u00f3, let\u00f6lti azt a <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.docker.com\/\">Docker Hub<\/a><\/noindex>. Ha a k\u00e9p megvan, akkor azt haszn\u00e1lja a kont\u00e9ner l\u00e9trehoz\u00e1s\u00e1hoz;<\/li>\n<li><b>a kont\u00e9nert l\u00e9trehozza:<\/b> amikor a k\u00e9p meg\u00e9rkezik, a docker azt haszn\u00e1lja a kont\u00e9ner l\u00e9trehoz\u00e1s\u00e1hoz;<\/li>\n<li><b>inizializ\u00e1lja a f\u00e1jlrendszert \u00e9s mountolja a csak olvashat\u00f3 szintet:<\/b> a kont\u00e9ner l\u00e9trej\u00f6tt a f\u00e1jlrendszerben, \u00e9s a csak olvashat\u00f3 szint hozz\u00e1 lett adva a k\u00e9phez;<\/li>\n<li><b>inizializ\u00e1lja a h\u00e1l\u00f3zat\/h\u00edd:<\/b> l\u00e9trehoz egy h\u00e1l\u00f3zati interf\u00e9szt, amely lehet\u0151v\u00e9 teszi a docker sz\u00e1m\u00e1ra, hogy kommunik\u00e1ljon a gazdag\u00e9ppel;<\/li>\n<li><b>IP-c\u00edm be\u00e1ll\u00edt\u00e1sa:<\/b> megtal\u00e1lja \u00e9s be\u00e1ll\u00edtja a c\u00edmet;<\/li>\n<li><b>A megadott folyamat elind\u00edt\u00e1sa:<\/b> elind\u00edtja az alkalmaz\u00e1s\u00e1t;<\/li>\n<li><b>Feldolgozza \u00e9s megjelen\u00edti az alkalmaz\u00e1s kimenet\u00e9t:<\/b> csatlakozik \u00e9s napl\u00f3zza az alkalmaz\u00e1s standard bemenet\u00e9t, kimenet\u00e9t \u00e9s hibakimenet\u00e9t, hogy nyomon k\u00f6vethesse, hogyan m\u0171k\u00f6dik az alkalmaz\u00e1sa.<\/li>\n<\/ul>\n<p>\nMost m\u00e1r van egy m\u0171k\u00f6d\u0151 kont\u00e9nere. Kezelheti a kont\u00e9ner\u00e9t, interakci\u00f3ba l\u00e9phet az alkalmaz\u00e1s\u00e1val. Amikor \u00fagy d\u00f6nt, hogy le\u00e1ll\u00edtja az alkalmaz\u00e1st, t\u00f6r\u00f6lje a kont\u00e9nert.<\/p>\n<h3>Haszn\u00e1lni k\u00edv\u00e1nt technol\u00f3gi\u00e1k<\/h3>\n<p>\nA Docker Go nyelven \u00edr\u00f3dott, \u00e9s haszn\u00e1lja a Linux kernel n\u00e9h\u00e1ny funkci\u00f3j\u00e1t a fent eml\u00edtett funkci\u00f3 v\u00e9grehajt\u00e1s\u00e1hoz.<\/p>\n<h4>N\u00e9vterek (namespaces)<\/h4>\n<p>\nA Docker a technol\u00f3gi\u00e1t haszn\u00e1lja <code>namespace-ek<\/code> izol\u00e1lt munkater\u00fcletek szervez\u00e9s\u00e9re, amelyeket kont\u00e9nereknek nevez\u00fcnk. Amikor kont\u00e9nert ind\u00edtunk, a docker l\u00e9trehoz egy n\u00e9vterekb\u0151l \u00e1ll\u00f3 k\u00e9szletet a kont\u00e9ner sz\u00e1m\u00e1ra.<\/p>\n<p>Ez egy izol\u00e1lt szintet hoz l\u00e9tre, ahol a kont\u00e9ner minden aspektusa a saj\u00e1t n\u00e9vt\u00e9rben fut, \u00e9s nem f\u00e9r hozz\u00e1 a k\u00fcls\u0151 rendszerhez.<\/p>\n<p>A docker \u00e1ltal haszn\u00e1lt n\u00e9h\u00e1ny n\u00e9vt\u00e9r list\u00e1ja:<\/p>\n<ul>\n<li><b>pid:<\/b> a folyamatok elk\u00fcl\u00f6n\u00edt\u00e9s\u00e9re;<\/li>\n<li><b>net:<\/b> a h\u00e1l\u00f3zati interf\u00e9szek kezel\u00e9s\u00e9re;<\/li>\n<li><b>ipc:<\/b> az IPC er\u0151forr\u00e1sok kezel\u00e9s\u00e9re. (IPC: InterProcess Communication);<\/li>\n<li><b>mnt:<\/b> a csatol\u00e1si pontok kezel\u00e9s\u00e9re;<\/li>\n<li><b>utc:<\/b> a kernel izol\u00e1l\u00e1s\u00e1ra \u00e9s a verzi\u00f3gener\u00e1l\u00e1s ellen\u0151rz\u00e9s\u00e9re (UTC: Unix timesharing system).<\/li>\n<\/ul>\n<h4>Vez\u00e9rl\u0151csoportok (control groups)<\/h4>\n<p>\nA Docker szint\u00e9n a technol\u00f3gi\u00e1t haszn\u00e1lja <code>cgroups<\/code> vagy ellen\u0151rz\u0151 csoportok. A kulcs az alkalmaz\u00e1s elszigetelts\u00e9g\u00e9ben az, hogy csak azokat az er\u0151forr\u00e1sokat biztos\u00edtjuk az alkalmaz\u00e1s sz\u00e1m\u00e1ra, amelyeket szeretn\u00e9nk. Ez biztos\u00edtja, hogy a kont\u00e9nerek j\u00f3 szomsz\u00e9dok legyenek. Az ellen\u0151rz\u0151 csoportok lehet\u0151v\u00e9 teszik a rendelkez\u00e9sre \u00e1ll\u00f3 er\u0151forr\u00e1sok elk\u00fcl\u00f6n\u00edt\u00e9s\u00e9t, \u00e9s ha sz\u00fcks\u00e9ges, korl\u00e1tok \u00e9s hat\u00e1rok be\u00e1ll\u00edt\u00e1s\u00e1t. P\u00e9ld\u00e1ul korl\u00e1tozhatjuk a kont\u00e9nerben l\u00e9v\u0151 mem\u00f3ria mennyis\u00e9g\u00e9t.<\/p>\n<h4>Union File System<\/h4>\n<p>\nA Union File System vagy UnionFS egy f\u00e1jlrendszer, amely r\u00e9tegeket hoz l\u00e9tre, \u00edgy nagyon k\u00f6nny\u0171 \u00e9s gyors. A Docker az UnionFS-t haszn\u00e1lja a kont\u00e9ner fel\u00e9p\u00edt\u00e9s\u00e9hez sz\u00fcks\u00e9ges blokkok l\u00e9trehoz\u00e1s\u00e1ra. A Docker t\u00f6bb UnionFS lehet\u0151s\u00e9get is haszn\u00e1lhat, bele\u00e9rtve: AUFS, btrfs, vfs \u00e9s DeviceMapper.<\/p>\n<h4>Kont\u00e9nerform\u00e1tumok<\/h4>\n<p>\nA Docker ezeket az \u00f6sszetev\u0151ket egy olyan burkolatba \u00f6sszerakja, amelyet kont\u00e9nerform\u00e1tumnak nevez\u00fcnk. Az alap\u00e9rtelmezett form\u00e1tum neve <code>libcontainer<\/code>. A Docker t\u00e1mogatja a hagyom\u00e1nyos kont\u00e9nerform\u00e1tumokat is Linuxban <noindex><a rel=\"nofollow\" href=\"http:\/\/linuxcontainers.org\">LXC<\/a><\/noindex>. A j\u00f6v\u0151ben a Docker m\u00e1s kont\u00e9nerform\u00e1tumokat is t\u00e1mogathat. P\u00e9ld\u00e1ul integr\u00e1lva a BSD Jails vagy a Solaris Zones szolg\u00e1ltat\u00e1saival.<br \/>\n<br \/>Forr\u00e1s: <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.3 - 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\/hu\/blog\/administrirovanie\/ponimaya-docker\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\/hu\/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\udd47A Docker meg\u00e9rt\u00e9se | ProHoster","description":"M\u00e1r n\u00e9h\u00e1ny h\u00f3napja a dockert haszn\u00e1lom a webes projektek fejleszt\u00e9si\/sz\u00e1ll\u00edt\u00e1si folyamat\u00e1nak strukt\u00far\u00e1l\u00e1s\u00e1ra.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ponimaya-docker","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/36772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=36772"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/36772\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=36772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=36772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=36772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}