Docker oktatóanyag kezdőknek: alapok, Architecture, Containers

Mi a Docker?

Dokkmunkás egy szoftverfejlesztő platform több virtualizációhoz Operaugyanazon a gazdagépen futó rendszereket. Segít az infrastruktúra és az alkalmazások szétválasztásában a szoftver gyors szállítása érdekében. A virtuális gépek (VM) létrehozására használt Hypervisorokkal ellentétben a Docker virtualizációja rendszerszinten történik, amelyeket Docker-tárolóknak is neveznek.

Amint az alábbi képen látható a különbség, a Docker-tárolók a gazdagép tetején futnak Operarendszer. Ez segít a hatékonyság és a biztonság javításában. Sőt, több tárolót futtathatunk ugyanazon az infrastruktúrán, mint amennyit virtuális gépeken, mivel a konténerek kevesebb erőforrást használnak.

Virtualizáció a Docker vs Hypervisorban
Virtualizáció a Docker vs Hypervisorban

Ellentétben azokkal a virtuális gépekkel, amelyek képesek kommunikálni a gazdagép hardverével (pl. Ethernet adapter több virtuális adapter létrehozásához), a Docker-tárolók elszigetelt környezetben futnak a gazdagép operációs rendszere tetején. Még akkor is, ha a házigazdád fut Windows OS, a Linux-képek konténerekben futhatnak a segítségével Hyper-V, amely automatikusan létrehozza a kis virtuális gépet a rendszer alapképének virtualizálásához, ebben az esetben Linux.

Miért használja a Dockert?

  • A Docker egy számítógépes szoftver, amelyet virtualizációhoz használnak annak érdekében, hogy több legyen Operadolgok rendszerei ugyanazon a gazdagépen fut
  • A Docker egy kliens-szerver típusú alkalmazás, ami azt jelenti, hogy vannak klienseink, akik továbbítják a szervert
  • A Docker képek a konténereink „forráskódja”; építkezéshez használjuk őket
  • A Dockerfile kétféle nyilvántartással rendelkezik: 1.) nyilvános és 2) magánnyilvántartások
  • A tárolók a Docker kötet szervezeti egységei. Egyszerűen fogalmazva, a kép egy sablon, a tároló pedig ennek a sablonnak a másolata. Ugyanannak a képnek több tárolója (másolata) is lehet.

Dokkmunkás Architectúra

Most ebben a Docker-tároló oktatóanyagban beszéljünk a Docker fő összetevőiről a Dockerben Architectúra:

Dokkmunkás Architectúra
Dokkmunkás Architectúra

Docker motor

A Docker egy kliens-szerver típusú alkalmazás, ami azt jelenti, hogy vannak klienseink, akik továbbítják a szervert. Tehát a Docker-démon: dockerd a Docker motor, amely a szervert képviseli. A docker démon és a kliensek futtathatók ugyanazon vagy távoli gépen, és parancssori kliens binárison, valamint teljes RESTful API interakcióba lépni a démonnal: dockerd.

Docker Images

A Docker képek a konténereink „forráskódja”; konténerek építésére használjuk őket. Előre telepített szoftverrel rendelkezhetnek, amely felgyorsítja a telepítést. Hordozhatóak, használhatjuk a meglévő képeket, vagy készíthetünk saját képeket.

Docker nyilvántartások

A Docker a rendszerleíró adatbázisokban tárolja az általunk készített képeket. Vannak nyilvános és magán nyilvántartások. A Docker cégnek nyilvános nyilvántartása van Docker hub, ahol privát módon is tárolhat képeket. A Docker hub több millió képet tartalmaz, amelyeket most elkezdhet használni.

Docker konténerek

A konténerek a szervezeti egységek és a Docker alapkoncepciójának egyike. Amikor felépítünk egy képet és elkezdjük futtatni; konténerben futunk. A konténer-analógiát a konténerünkben futó szoftver hordozhatósága miatt használjuk. Mozgathatjuk, vagyis „szállíthatjuk” a szoftvert, módosíthatjuk, kezelhetjük, létrehozhatjuk vagy megszabadulhatunk tőle, megsemmisíthetjük, ahogy a teherhajók megtehetik a valódi konténerekkel.

Egyszerűen fogalmazva, a kép egy sablon, a tároló pedig ennek a sablonnak a másolata. Ugyanannak a képnek több tárolója (másolata) is lehet.

Az alábbiakban van egy kép, amely tökéletesen bemutatja a különböző összetevők közötti interakciót és a Docker konténertechnológia működését.

Több docker parancsunk van docker pull, docker run.. erről majd később.

A Docker telepítése Linuxra/Ubuntu

Az alábbiakban lépésről lépésre bemutatjuk a Docker telepítési folyamatát Linuxon/Ubuntu:

1 lépés) A Docker telepítéséhez a Docker csapat DEB-csomagjait kell használnunk.

Ehhez némi előfeltétel Ubuntu csomagok szükségesek.

A telepítéshez használja az alábbi parancsot Ubuntu csomagok

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*a „\” jel nem szükséges, az új sorban használatos, ha akarja, a parancsot a „\” használata nélkül is kiírhatja egy sorba.

Step 2) Adja hozzá a hivatalos Docker GPG kulcsot az ujjlenyomattal.

Használja az alábbi Docker parancsot a GPG kulcs megadásához

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Step 3) Ezután adja hozzá a Docker APT-tárat.

Használja az alábbi Docker parancsot a tár hozzáadásához

$ sudo add-apt-repository \ 
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 
$(lsb_release -cs) \
stable"

Előfordulhat, hogy a rendszer felkéri, hogy erősítse meg, hogy hozzá kívánja-e adni a tárolót, és a GPG kulcsot automatikusan hozzá kívánja adni a gazdagéphez.

Az lsb_release parancsnak fel kell töltenie a Ubuntu a gazdagép terjesztési verziója.

Step 4) A GPG kulcs hozzáadása után

Frissítse az APT forrásokat az alábbi Docker paranccsal

$ sudo apt-get update

Most már telepíthetjük magát a Docker-csomagot.

Step 5) Az APT-források frissítése után

Kezdje el a Docker-csomagok telepítését Ubuntu az alábbi Docker paranccsal

$ sudo apt-get install docker-ce

A fent megadott parancs telepíti a Dockert és más további szükséges csomagokat. A Docker 1.8.0 előtt a csomag neve lxc-docker volt, a Docker 1.8 és 1.13 között pedig docker-engine volt.

JEGYZET: Docker for Windows megköveteli, Windows 10 Pro vagy Enterprise verzió 14393, vagy Windows szerver 2016 RTM futtatásához

A Docker használata az alapvető Docker-parancsok használatával

A Docker használatának módja az alapvető Docker-parancsok használatával:

A Docker telepítése után futtatandó legalapvetőbb parancs a $ docker info, amint azt korábban említettük.

$ sudo docker info

Hasonló vagy a következő eredményt kell kapnia

Használja a Dockert az alapvető Docker-parancsokkal

Ahogy a fenti Docker-példán is láthatjuk, információval rendelkezünk a docker-tárolókról, hogy hány fut, szünetel vagy áll le, és hány képet töltöttünk le. Tehát nézzük meg az első képet ebben a Docker-parancsok oktatóanyagában.

$ sudo docker pull alpine

Ezzel a paranccsal azt mondjuk a dockernek, hogy töltse le a képet alpine, hogy húzza le a nyilvános nyilvántartásból, az alapértelmezés szerint beállított legújabb verzióból.

Az *alpine egy minimális Docker-kép, amely Alpine Linuxon alapul, teljes csomagindexszel és mindössze 5 MB méretű.

Ha a képet tárolóként szeretnénk futtatni, a következő parancsot fogjuk használni ebben a Docker oktatóanyagban.

$ sudo docker run -i -t alpine /bin/bash

Ha futtatjuk a parancsot, közvetlenül az alpesi terminálra kerülünk. Az -i jelző nyitva tartja az STDIN kódot a tárolóból, még akkor is, ha nem csatlakozik hozzá. Ez az állandó szabványos bemenet fele annak, amit egy interaktív héjhoz kell. A -t zászló a másik fele, amely arra utasítja a Dockert, hogy rendeljen hozzá egy pszeudo-tty-t a tárolóhoz. Ez egy interaktív héjat kínál az új tárolóban. A tárolóból egy egyszerű kilépési paranccsal lépünk ki.

Most ebben a Docker alapismeretek oktatóanyagában megpróbálhatunk futtatni egy Ubuntu kép.

$ sudo docker run -it ubuntu /bin/bash

Észreveheti, hogy a docker ellenőrzi a képet lokálisan, és ha nincs ott, akkor a rendszer automatikusan kihúzza a képet a képtárból, és ismét egy interaktív shell fut. A konténereket futás közben is elnevezhetjük.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

és újra kilépünk.

A korábban létrehozott tárolót interaktív shell nélkül is futtathatjuk.

$ sudo docker start container_name

És állítsa le a konténerírási dokkolót, állítsa le a konténer_neve

$ sudo docker stop container_name

Ha látni akarjuk az összes futó tárolót, csak futtassuk

$ docker ps

És minden konténerhez „-a”-t adunk ugyanannak a parancsnak a végére, mint például ez a docker ps -a.

Ez a parancs megmutatja a tároló azonosítóját, a létrehozáskor használt képfájlt, a futás állapotát, a szabaddá vált portokat és a tároló véletlenszerűen generált nevét a könnyebb kezelés érdekében.

A konténerek futtatásakor azt is szeretnénk tudni, hogy mennyi erőforrást használnak fel, erre a célra használhatjuk a parancsot.

$ docker stats

Azt is megtekintheti, hogy mely képeket töltöttük le helyben, és információkat is láthat róluk.

$ sudo docker images

A fenti Docker-példa parancsa megjeleníti a docker-képet egy címkével, amely megmutatja képünk verzióját, egy megkülönböztető képazonosítót, a létrehozás időpontját és a kép méretét.

Mi az a virtualizáció?

Korábban egy szolgáltatás telepítésének folyamata lassú és fájdalmas volt. Először is a fejlesztők kódot írtak; majd a műveleti csapat csupasz fém gépeken telepítette, ahol a kód működéséhez könyvtári verziókat, javításokat és nyelvi fordítókat kellett keresniük. Ha voltak hibák vagy hibák, a folyamat elölről indult, a fejlesztők kijavították, majd ismét ott volt az operatív csapat, hogy telepítse.

A hipervizorok létrehozásával javulás történt. A hipervizoroknak több is van Virtuális gépek vagy ugyanazon a gazdagépen lévő virtuális gépek, amelyek futnak vagy ki vannak kapcsolva. A virtuális gépek nagymértékben csökkentették a kód telepítésének és a hibajavításnak a várakozási idejét, de az igazi játékváltót a Docker konténerek jelentették.

Fontos Docker-parancsok

Alább találhatók a fontos Docker-parancsok:

parancs Description
dokkoló információ Információs parancs
dokkoló húzza Kép letöltése
docker run -i -t image_name /bin/bash Futtassa a képet tárolóként
docker indítsa el a_container-ünket Indítsa el a tárolót
docker stop konténer_neve Állítsa le a tartályt
docker ps Az összes futó konténer listája
dokkoló statisztika Konténer információk
docker képek A letöltött képek listája
Docker tisztítás Öld meg az összes futó konténert.

Olvassa el Docker állásinterjú kérdések és válaszok frissebb és tapasztalt szakemberek számára.

Összegzésként

  • A Docker egy szoftverfejlesztő platform többes virtualizációhoz Operaugyanazon a gazdagépen futó rendszereket. Segít az infrastruktúra és az alkalmazások szétválasztásában a szoftver gyors szállítása érdekében.
  • Dokkmunkás Architectúra: Docker Engine, Docker Images, Docker Registries, Docker Containers.
  • DockerEngine: A Docker egy kliens-szerver típusú alkalmazás, ami azt jelenti, hogy vannak klienseink, akik továbbítják a szervert. Tehát a Docker-démon: dockerd a Docker motor, amely a szervert képviseli.
  • Docker képek: A Docker képek a konténereink „forráskódja”; konténerek építésére használjuk őket. Előre telepített szoftverrel rendelkezhetnek, amely felgyorsítja a telepítést. Hordozhatóak, használhatjuk a meglévő képeket, vagy készíthetünk saját képeket.
  • Docker nyilvántartások: A Docker a rendszerleíró adatbázisokban tárolja az általunk készített képeket. Vannak nyilvános és magán nyilvántartások. A Docker cégnek van nyilvános nyilvántartása, a Docker hub, ahol a képeket privát módon is tárolhatja. A Docker hub több millió képet tartalmaz, amelyeket most elkezdhet használni.
  • Docker konténerek: A konténerek a szervezeti egységek és a Docker alapkoncepciójának egyike. Amikor felépítünk egy képet és elkezdjük futtatni; konténerben futunk. A konténer-analógiát a konténerünkben futó szoftver hordozhatósága miatt használjuk.