Bevezetés
Docker egy olyan platform, amely megkönnyíti az alkalmazásfolyamatok futtatását és kezelését konténerekben. Lehetővé teszi az alkalmazások elválasztását az infrastruktúrától. A konténerek nagyon hasonlítanak a virtuális gépekhez, de hordozhatóbbak, hatékonyabbak és könnyebben használhatók. Különböző módokon lehet telepíteni a Dockert a Linux disztribúciókra. A legnépszerűbb és legegyszerűbb módja a Docker telepítésének a meglévő operációs rendszerre a yum parancsok használata.
Ez az útmutató bemutatja, hogyan állíthatja be és használhatja a Dockert CentOS 7 rendszeren néhány egyszerű lépésben.
Előfeltételek:
- 64 bites CentOS 7 példány.
- Egy nem-root felhasználó sudo jogosultságokkal.
Az útmutató során végrehajtott összes parancs nem-root felhasználóként fut, és szükség esetén a root hozzáférést a sudo kulcsszó használatával biztosítjuk.
1. lépés: A Docker beállítása CentOS 7 példányon
Előfordulhat, hogy a hivatalos CentOS 7 tároló nem tartalmazza a legújabb Docker telepítőcsomagot. Ebben a részben a Docker legújabb verzióját fogja telepíteni a hivatalos Docker tárolóból. Először frissítenie kell a csomagadatbázist a következővel:
|
1 |
sudo yum check-update |
A frissítési lépés befejezése után futtassa az alábbi parancsot a Docker legújabb verziójának letöltéséhez és telepítéséhez:
|
1 |
curl -fsSL https://get.docker.com/ | sh |
A Docker most már telepítve van, így az alábbi parancs futtatásával elindíthatja a Docker démont:
|
1 |
sudo systemctl start docker |
A Docker démon futásának ellenőrzéséhez írja be a következőt:
|
1 |
sudo systemctl status docker |
A systemctl status parancs kimenetének hasonlónak kell lennie az alább megosztott kimenethez, amely azt mutatja, hogy fut:
|
1 2 3 4 5 6 |
Kimenet: ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2021-02-17 18:22:06 UTC; 10s ago Docs: https://docs.docker.com Main PID: 21884 (dockerd) |
Végül, hogy a Docker biztosan elinduljon a gép újraindításakor, használja a következő parancsot:
|
1 |
sudo systemctl enable docker |
A Docker telepítése biztosítja a Docker szolgáltatást, valamint az ügyfélprogramot (Docker parancssori kliens). Az útmutató következő részeiben gyakorlatiasabb tapasztalatokat szerezhet a Docker parancsok használatával.
Megtekintheti továbbá a részletes útmutatónkat arról, hogyan telepítheti & üzemeltetheti a Dockert Ubuntun a nyilvános felhőben.
2. lépés: Docker parancsok használata Sudo előtag nélkül
A Docker parancsok futtatásához root jogosultságok szükségesek. Így, ha futtatni szeretné a parancsokat, a sudo előtagot kell használnia. A telepítés során alapértelmezés szerint létrejön egy Docker csoport. Ha hozzáad egy felhasználót a csoporthoz, a Docker parancsokat sudo nélkül is futtathatja. Ha a Docker parancsokat sudo nélkül próbálja futtatni, vagy anélkül, hogy hozzáadná a felhasználót a csoporthoz, az alábbihoz hasonló kimenetet fog kapni:
|
1 2 3 |
Kimenet: docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?. See 'docker run --help'. |
A felhasználóneve hozzáadása a Docker csoporthoz biztosítja, hogy ne kelljen a sudo-t használnia a Docker parancsok futtatásához:
|
1 |
sudo usermod -aG docker $(whoami) |
Egy másik felhasználó hozzáadásához a Docker csoporthoz egyszerűen cserélje ki a felhasználónevet a parancsban:
|
1 |
sudo usermod -aG docker username |
A jelen útmutató további részében feltételezzük, hogy az összes parancsot a Docker felhasználói csoportba tartozó felhasználó hajtja végre. Ha nem ez a helyzet, használhatja a sudo előtagot a parancsokkal.
3. lépés: A Docker parancsok végrehajtása
Most, hogy a Docker telepítve van és fut, nézzünk meg néhány parancsot, hogy megismerkedjünk a Docker parancssori segédprogramjával. A Docker parancsok általában a következő formát öltik:
|
1 |
docker [opció] [parancs] [argumentumok] |
Az összes elérhető alparancs listázásához használd a következőt:
|
1 |
docker |
A Docker 20.10.3 verziótól kezdve az elérhető alparancsok teljes listája a következőket tartalmazza:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Kimenet: attach Csatlakoztassa a local szabványos bemeneti, kimeneti, és hiba-adatfolyamokat egy futó konténerszámára build Készítsen egy képfájlt egy Dockerfile fájlból commit Hozzon létre egy új képfájlt egy konténer módosításaiból's changes cp Fájlok/mappák másolása egy konténer és a helyi fájlrendszer között create Új konténer létrehozása diff Változások ellenőrzése egy konténers fájlrendszerének events Kérjen le valós idejű eseményeket a szerverről exec Futtasson egy parancsot egy futó konténerben export Exportálja egy konténer's fájlrendszeréttar archívum kéntarchive history Jelenítse meg egy képfájl előzményeitimage images Listázza a képfájlokat import Importálja a tartalmat egy tarballból fájlrendszer- képfájl létrehozás ához a filesystem image info Jelenítsen meg rendszer-szintű információkat inspect Kérjen le alacsony-szintű információkat a Docker objektumokról kill Állítson le kényszerítve egy vagy több futó konténert load Töltsön be egy képfájlt egy tar archívumból vagy az STDIN-ről login Jelentkezzen be egy Docker regiszterbe logout Jelentkezzen ki egy Docker regiszterből logs Kérje le egy konténer napló fájljait container pause Függessze fel az összes folyamatot egy vagy több konténeren belülkonténerek port Listázza a port hozzárendeléseket vagy egy konkrét hozzárendelést a konténerhezcontainer ps Listázza a konténereket pull Letölt egy képet vagy egy tárolót egy regisztrációs adatbázisból push Feltölt egy képet vagy egy tárolót egy regisztrációs adatbázisba rename Átnevez egy konténert restart Újraindít egy vagy több konténert rm Eltávolít egy vagy több konténert rmi Eltávolít egy vagy több képet run Futtat egy parancsot egy új konténer belsejében save Ment egy vagy több képet egy tar archívumba, amely (továbbítva lesz a STDOUT-ra alapértelmezés szerint) search Keresés a Docker Hub-on képek után start Elindít egy vagy több leállított konténert stats Megjeleníti a konténerek erőforrás-használati statisztikáinak élő (folyamát) resource usage statistics stop Leállít egy vagy több futó konténert tag Létrehoz egy címkét TARGET_IMAGE néven, amely a SOURCE_IMAGE-re hivatkozik top Megjeleníti egy konténer futó folyamatait a container unpause Folytatja az összes folyamatot egy vagy több konténeren belül update Frissíti egy vagy több konténer konfigurációjátcontainers version Megjeleníti a Docker verzióinformációitinformation wait Várakozik, amíg egy vagy több konténer leáll, , majd kiírja azok kilépési kódjait |
A –help jelzőt egy adott paranccsal használva további információkat kaphat arról:
|
1 |
docker alparancs --help |
A rendszerrel kapcsolatos részletes információk lekéréséhez használja a következőt:
|
1 |
docker info |
4. lépés: Docker-képek használata
A Docker-képek a Docker-konténerek tervrajzainak tekinthetők. Ezeket a képeket általában a Docker Hub felületről töltik le, amely a Docker projekt által kezelt regisztrációs adatbázis. Bárki létrehozhat és feltölthet saját képeket a Docker Hubra. Ennek eredményeként könnyen találhat különféle alkalmazásokat és operációs rendszer disztribúciókat a regisztrációs adatbázisban. Próbáljunk ki egy egyszerű programot, amely megerősíti a Docker Hubhoz való hozzáférést:
|
1 |
docker run hello-world |
Az alábbihoz hasonló kimenetet kell kapnia, ami azt mutatja, hogy a Docker működik:
|
1 2 3 4 |
Kimenet: Hello a Dockertől! Ez az üzenet azt mutatja, hogy a telepítés úgy tűnik, megfelelően működikworking correctly. ... |
A keresési parancs segítségével különféle Docker-képeket találhat a Docker Hubon. Példaként tekintse meg az alábbi parancsot a CentOS kép kereséséhez:
|
1 |
docker search centos |
A keresési lekérdezés megjeleníti az összes olyan kép listáját, amely megegyezik a részkarakterlánccal. Az Ön esetében a kimenetnek a következőnek kell lennie:
|
1 2 3 4 5 6 7 8 |
Kimenet: NÉV LEÍRÁS CSILLAGOK HIVATALOS AUTOMATIZÁLT centos A CentOS hivatalos verziójaCentOS. 6410 [OK] ansible/centos7-ansible Ansible ezen: Centos7 132 [OK] consol/centos-xfce-vnc Centos konténer ezzel: "headless" VNC sess… 125 [OK] jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL tárolók… 117 [OK] centos/systemd systemd engedélyezett alap konténer. 96 [OK] ... |
A keresési eredményekben különböző oszlopok írják le a képpel kapcsolatos információkat. Az OFFICIAL oszlopban lévő OK azt jelzi, hogy a képet az alkalmazás mögött álló cég hozta létre és támogatja. Miután kiválasztotta a képet, letöltheti azt a helyi gépére a Docker pull paranccsal:
|
1 |
docker pull centos |
A kép letöltése után a Docker run paranccsal futtathatja a konténert. Ha közvetlenül próbál meg futtatni egy képet előzetes letöltés nélkül, a Docker először letölti a képet, majd utána futtatja a konténert:
|
1 |
docker run centos |
A helyi gépére letöltött képeket az alábbi paranccsal listázhatja ki:
|
1 |
docker images |
Hasonló kimenetet kell kapnia:
|
1 2 3 4 |
Kimenet: REPOSITORY TAG IMAGE ID LÉTREHOZVA MÉRET centos latest 300e315adb2f 2 hónappal ezelőtt 209MB hello-world latest bf756fb1ae65 13 hónappal ezelőtt 13.3kB |
A későbbiekben ebben az útmutatóban módosíthatja majd a képeket a konténerek futtatásához. Ezeket az új képeket hozzáadhatja vagy feltöltheti (push) a Docker Hubra és más, Docker-képeket kiszolgáló regiszterekbe.
5. lépés: Konténer futtatása interaktív módban
Különböző típusú konténerek léteznek. A hello-world konténer, amelyet a 4. lépésben futtatott, egy olyan típusú konténer, amely lefut, majd egy üzenet kiírása után leáll. Egy másik típus az interaktív konténer. Az interaktív konténereket a virtuális gépekhez hasonló módon használhatja.
Hozzunk létre egy konténert a legfrissebb CentOS képből. A -i és -t kapcsolók használata a Docker run parancsban interaktív hozzáférést biztosít a CentOS konténerhez:
|
1 |
docker run -it centos |
A parancssor megváltozik, és az alábbi kimenethez hasonlóan kell kinéznie:
|
1 2 |
Kimenet: [root@3ce69d2a35b9 /]# |
|
1 |
Megjegyzés: A konténer azonosítója, amely megjelenik a parancssorban, egyedi, és jól fog jönni a későbbiekben; a példában ez , a következő: example it is 3ce69d2a35b9. |
Mostantól minden végrehajtott parancs a konténeren belül fog futni. Ez hasonló ahhoz, mintha egy virtuális gépben futtatna parancsokat. Próbáljuk meg telepíteni a MySQL szervert a CentOS konténerben. Ezt a következővel teheti meg:
|
1 |
yum install mysql |
6. lépés: A konténerben végrehajtott változtatások mentése (commit) egy Docker-képbe
A konténer elindítása után minden olyan műveletet elvégezhet, amely egy hasonló virtuális gépben is elvégezhető, például fájlok létrehozását/módosítását vagy egy alkalmazás beállítását. Kérjük, vegye figyelembe, hogy ezek a változtatások csak az adott konténerben maradnak meg, és a konténer megsemmisítése után az elvégzett változtatások elvesznek.
Az útmutató ebben a részében megtanulhatja, hogyan hozhat létre új Docker-lemezképet egy konténerből az elvégzett változtatásokkal. Miután Step5 egy futó CentOS konténerrel rendelkezik, amelyre telepítve van a MySQL szerver. Ez a konténer most már különbözik az egyszerű CentOS lemezképtől. A konténer ezen állapotát elmentheti későbbi használatra. Először ki kell lépnie a konténerből a következővel:
|
1 |
exit |
Mentse el (commit) a konténerben végrehajtott változtatásokat egy új Docker-lemezképbe az alábbi paranccsal:
|
1 |
docker commit -m "Changes done to the image" -a "Author Name" container-id repository/new_image_name |
A parancsban a -m a commit üzenetre utal, és alapvetően a végrehajtott változtatásokat kell jelölnie, a -a címke pedig a szerző megadására szolgál. A Container-id a Step5 lépésből származik, amelyet a konténer interaktív módban történő futtatása után kapott, és a repository általában a Docker Hub felhasználóneve. Például:
|
1 |
docker commit -m "added mysql-server" -a "CloudSigma" 59839a1b7de2 finid/centos-mariadb |
|
1 |
Megjegyzés: Miután az új lemezkép rögzítésre került, az elmentésre kerül a saját rendszerén. A következő szakaszokban ennek az útmutatónak során , ön meg fogja tanulni, hogyan kell feltölteni egy lemezképet a Docker Hubra és a hasonló regiszterekbe, amelyek docker lemezképeket tárolnakimages. Amint az Ön lemezképe feltöltésre kerül a regiszterbe, az , más felhasználók számára is elérhetővé válikas well. |
Most, hogy a lemezkép elmentésre került, a Docker images parancsnak listáznia kell az új lemezképet a régiekkel együtt:
|
1 |
docker images |
A parancs kimenetének az alábbihoz hasonlónak kell lennie:
|
1 2 3 4 5 |
Kimenet: REPOSITORY TAG IMAGE ID CREATED SIZE cloudsigma23/centos-mysql latest 1b9368efea70 13 másodperccel ezelőtt 308MB centos latest 300e315adb2f 2 hónappal ezelőtt 209MB hello-world latest bf756fb1ae65 13 hónappal ezelőtt 13.3kB |
A példában látható módon egy új centos-mysql lemezkép jött létre a Docker Hub-ról származó CentOS lemezkép használatával. A méretbeli különbség azt jelzi, hogy történtek változtatások. Ebben a példában ez a MySQL szerver hozzáadása volt a konténerhez. Legközelebb, ha MySQL szerverrel rendelkező konténerre lesz szüksége, csak futtassa az új lemezképet, és íme! Már fut is egy CentOS konténere előre telepített MySQL szerverrel.
7. lépés: Docker konténerek kezelése
Most, hogy már ismeri a Dockert, egy ideje használja is, valószínűleg már van néhány futó és néhány inaktív konténere. Az aktív konténerek listájának lekéréséhez használja a következőt:
|
1 |
docker ps |
Hasonló kimenetet kell látnia:
|
1 2 3 |
Kimenet: KONTÉNER ID KÉP PARANCS LÉTREHOZVA STÁTUSZ PORTOK NEVEK 604c889cf404 centos "/bin/bash" 20 perccel ezelőtt Fut 20 perce intelligent_easley |
Az aktív és inaktív konténerek listázásához használja a -a jelzőt a paranccsal:
|
1 |
docker ps -a |
A legutóbb létrehozott konténer megkereséséhez használhatja a -l jelzőt:
|
1 |
docker ps -l |
Egy futó/aktív konténer leállításához futtassa a következő egyszerű parancsot:
|
1 |
docker stop container-id |
A container-id-t a Docker ps parancs kimenetében találja meg.
8. lépés: A képek közzététele egy tárhelyen (Repository)
Az új kép létrehozása utáni következő lépés annak megosztása a barátaival. A Docker Hub vagy bármely más regiszter segítségével az egész világ számára is elérhetővé teheti. A kép feltöltése (push) előtt be kell jelentkeznie a megfelelő regiszterbe.
Az útmutató következő részében megtanulhatja, hogyan töltheti fel a képeket a Docker Hubra. Először regisztráljon a Docker Hubon. Be kell jelentkeznie a Docker Hubra, hogy feltölthesse a képét az alábbi parancs használatával:
|
1 |
docker login -u docker-registry-username |
Miután megadta a helyes jelszót, és a hitelesítés sikeres volt, feltöltheti a képét. A kép feltöltéséhez használja az alábbi parancsot:
|
1 |
docker push docker-registry-username/docker-image-name |
A parancs kimenete ehhez hasonló lesz:
|
1 2 3 4 5 |
Kimenet: A feltöltés a tárhelyre hivatkozik [docker.io/cloudsigma23/centos-mysql] ee30e80cbcc5: Feltöltve 2653d992f4ef: Csatolva innen: library/centos ... |
Miután feltöltötte a képet, meg kell jelennie a fiókja irányítópultján, az alábbi képen látható módon:

Hasonló módon történő hiba esetén valószínű, hogy nem jelentkezett be:
|
1 2 3 4 5 6 7 |
Kimenet: A feltöltés a tárhelyre hivatkozik [docker.io/cloudsigma23/centos-mysql] ee30e80cbcc5: Réteg már létezik 2653d992f4ef: Réteg már létezik hibák: megtagadva: kért hozzáférés az erőforráshoz meg lett tagadva jogosulatlan: hitelesítés szükséges |
Bejelentkezhet, és megismételheti a feltöltési kísérletet.
Összegzés
Számos módja van a Docker használatának. Ez az útmutató elegendő információt nyújt a kezdéshez. És mivel a Docker egy igazán felkapott projekt, a használatáról és a különböző felhasználási esetekről számos részletet talál a projekt blogoldalán.
További Docker-útmutatóinkat is megtekintheti, hogy többet tudjon meg arról, mit tehet a Dockerrel:
- Docker-erőforrások tisztítása – Képek, konténerek és kötetek
- Laravel, Nginx és MySQL telepítése Docker Compose segítségével
- Saját VPN-szerver futtatása Docker alatt OpenVPN Access Server segítségével
Kellemes számítástechnikát!
Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.