Portainer alapok

Általánosságban szeretnék pár szót írni, mielőtt bárki bármibe is belekezdene.
Én is kezdő vagyok, de aki angol/német nyelven nem értené meg a dolgokat, azoknak segítség lehet.

Portainer hivatalos oldal: https://www.portainer.io/

Portainer egy konténer menedzselő alkalmazás, mely az általunk használt konténerek adatait, folyamatait, logjait mutatja és monitorozza azokat.

Portainer elérést az alábbi felületen érhetjük el, ha már telepítve van: http://NASIP:9000

Ezek után a megvagyunk az első lépés a jelszó páros létrehozása.
Célszerű, de nem kötelező a felhasználónév legyen admin, jelszó pedig egy erősebb jelszó mely kis, nagybetű és speciális karakter is lehet.

Ezek után ha megvagyunk akkor az alábbi felület fogad: Itt választ a local-t, majd men ja Continue-ra.

Ezek után első nekifutásra ilyesmi kép fogad, de nekem már pár telepített konténerem van 😊

Legfontosabb menüpontok:
- Dashboard:Összefoglaló a konténerekről és adatiakról.
- Stack: lefuttatott elemek/stack-ek találhatóak benne, melyeket szerkeszhetjünk/törölhetünk.
- Containers: Általunk futtatott konténerek láthatóak.
- Images: Itt a dockerben használt alkalmazásainkhoz használt konténerek vannak.
Ha nem használunk, akkor törölhetjük őket, újraindíthatjuk, leállíthatjuk, stb...
Épp ahsznált konténerek neve mellett a ,,running" vagy "healthy" zöld felirat található.
- Network: A rendszerben használt hálózatokat mutatja.
- Images: A rendszerben használt programjaihoz található imagek találhatóak, melyeket dockerhubról leszedtünk (vagy épp máshonnan pl.: linuxserver.io-ról.
Nem használt elemeket sárgával jelzi a rendszer. ("unused").
Ez azt jelenti, hogy a konténert jelenleg nem használjuk, ha szeretnénk törölhetjük.

Lásd a képen:

A legfontosabb menüpontunk Stacks lesz, mivel itt elég gyorsan tudunk újabb konténereket hozzáadni a meglévőinkhez, illetve szerkeszteni is, a szükségteleneket pedig törölni.

Elsősorban tisztázzuk, hogy a konténerek futtatására több lépés van

1. Stack-ként futtatni : bemásolni a szükséges paramétereket és futtatni.
Ebben az esetben Github vagy Dockerhub-ra feltöltött komplett szövegrészt kell bemásolni és pár paramétert átírni.
Amit ide bemásolsz mindig version: X.X-el fog kezdődni pl.: version: "2.1"

2. docker-compose fájlból futtatni : egy docker-compose.yml-t készíteni és lefuttani a megadott paranccsal(erre később kitérek)

3. docker run parancsal futtani: ezt elég kevésszer használom, mert az első 2 verzióval sokkal gyorsabb :DDD

docker-compose fájl futtatás hátránya, hogy a Portainer-ben igaz megjelenik a Containers és a Stack menüpontban a konténerünk (halványan), de csak a Conrainer menüben tudjuk majd szerkeszteni (Edit/Duplicate) . Erről majd később beszélek.

Nézzünk egy példát:

Dockerhub : Linuxserver : Transmission

Keressük meg a docker compose részt és másoljuk be az alábbi helyre:

Stacks => Add stack => Web editor (ez az alapértelmezett nézet) => ide illesszük be:

Névnek adjuk meg hogy transmission majd az alábbit látjuk:

Akkor egy kis magyarázat: (példafájl: Transmission)

PUID és PGID: Ide 2 számot kell megadnotok, melynek nevében futtatjátok a konténert, tehát egy felhasználót jelent valójában. Itt fontos megjegyeznem, hogy a felhasználónak, akinek megadtátok a PUID,PGID számait legyen joga ahhoz a mappához melyben konfiguráljátok.
Hol tudom lecsekkolni, hogy mi a PUID s PGID?
SSH-n beléptek a NAS-ra, majd kiadjátok azt a parancsot hogy: id admin vagy id sajatfelhasznaloneved
admin esetén ez 998 | 100 más felhasználó esetén 1000 | 100 is lehet.
Ha több felhasználód van ez az érték változni fog.

TZ: Timezone, ez bármi lehet, de célszerű megadni azt alábbit (Europe/Budapest)

Username és password : ezt töltsétek ki mindenképp, ha netre kiengeditek. Jelen esetben ehhez a konténerhez tartozik ilyen paraméter, viszont nem minden esetben kell megadnotok.

Volumes: ide adjuk meg a konténernek hova mentes az adatokat.Ebben az esetben az látható, hogy 3 mappára lesz szükségetek. Későbbiekben majd félkövérrel kiemelem mit írjatok ide.
- path to data:/config
- path to downloads:/downloads
- path to watch folder:/watch

Ports: Itt találhatóak azok a portok, melyeket a rendszer használja.Az alábbi címen fogod elérni a transmission-t: http://NASIP:9091
Transmission alapértelmezett portja 9091.
Restart: Ennek értéke, neve alkalmazásonként változik.

Ezek után nincs más, legfelül egy nevet kell megadni, mondjuk tranmission és alul az alábbi gombra rányomni : => Deploy to stack

Honnan tudod , hogy fut a konténer?
Container-s menüpontban, ha zöld ikont látok running vagy healty felirattal akkor fut a konténer.
Ezáltal a transmisison az alábbi ip-n elérhető => http:/NASIP:9091

Illetve nézd meg a Log részét amit itt találsz: Kiemeltem pirossal
Ide kattintasz - igaz képet nem készítettem - de ha bármi jellegű gond van akkor az itteni log jelzi neked.

Nézzünk példát a Tranmission stack alapú és docker-compose futtatására:
Tranmission telepítés az alábbi helyen elérhető: https://hub.docker.com/r/linuxserver/transmission/

1. Stack-es futtatás a Portainer-ben:

Potrainer => Stacks => Add stack
Itt a web-editors (alapértelmezett részbe )másoljátok be az alábbit

version: "2.1"
services:
transmission:
image: linuxserver/transmission
container_name: transmission
environment:
- PUID=1000
- PGID=100
- TZ=Europe/Budapest
- USER=transmissio_felhasznonev
- PASS=erosjelszo
volumes:
- /srv/dev-disk-by-label-WDP6TB/Docker/Transmission/config:/config
- /srv/dev-disk-by-label-WDP6TB/Torrent:/downloads
- /srv/dev-disk-by-label-WDP6TB/Docker/Transmission/watch:/watch
ports:
- 9091:9091
- 51413:51413
- 51413:51413/udp
restart: unless-stopped

FONTOS megjegyezni:
- Itt azokat a paramétereket, melyeket kiemeltem neked kell átírnod/javítanod
- PUID és PGID azonosít egy felhasználót, akivel futtatod a konténert. Ezért mindenféleképpen meg kell nézned, hogy az adott mappához, van e joga a felhasználónak, akit a PUID és PGID azonosít.
- volumes alatt lévő mappádinak mindig létezni kell és a megfelelő jogosultságoknak kell beállítva lennie.

Én SSH-n szoktam megnézni a jogokat, hogy megfelelőek e.
Putty => nasra belépek (root + jelszó)
1. parancs cd /srv/dev-disk-by-label-WDP6TB/Torrent
2. parancs: ls -la
Ezzel kilistázza mely mappához milyen felhasználóknak van jogosultságunk

2. docker-compose fájlos futtatás

Itt az adott Docker/Transmission mappában egy docker-compose.yml fájlt kell létrehoznod. Ezt több módon is csinálhatod, SSH vagy épp Win hálózaton Notepad++-al szerkesztve megteheted, ezt rádbízom.

Nálam ez így nézne ki SSH-m

1. parancs: cd /srv/dev-disk-by-label-WDP6TB/Torrent
2. parancs: nano docker-compose.yml
3. parancs:
- Kimásolod amit a stackhez másoltál egész szöveget
- Belekattintasz a fekete DOS-os felületbe majd Jobb egér klikkel bemásolod
- Menteni a CTRL+X-el tudod, majd Y és Enter
4. parancs: docker-compose up -d

Ezzel a pár soros paranccsal ugyanazt tettük meg, mint a stack esetén.
FONTOS:Egy probléma van, mégpedig az, hogy ha valamit elírtunk a docker-compose fájlban és szerkeszteni szerenténk, azt csak itt tehetjük meg (SSH vagy hálózaton szerkesztve a fájlt), a Portainer/Stacks menüpontban sajnos nem!

FAQ:
Tudom-e szerkeszteni a Potrainer-ben a konténerem adatait, ha hibásan töltöttem ki?
Igen tudod.Erre 2 módod van:
- A konténerre kattintva Portainerben az Edit/Duplicate menüpont alatt tudod szerkeszteni egyesével
- Ha Stacks-ként futtattad, akkor a Stacks menübben a konténer nevére kattintva az Edit-nél tudsz több dolgot egyszerre változtatni

Tudom-e a szerkeszteni a docker-compose fájlként futtatott konténerem?
A konténer nevére kattintva egysével tudod szerkeszteni a paramétereket, viszont ha több változtatásod van akkor a docker-compose fájlt újra kell nyitni, szerkeszteni majd futatni (docker-compose up -d)

Tudom a törölni a felesleges konténereket?
Container menüpontban a törlésre(delete) kell kattintantva tudjuk törölni a könténert.Ha a felugró ablakon (Automatically non-presistent .,,) a csúszkát jobbra elhúzzuk, akkor stacken kívül az image is törlésere kerül

Tudsz csak konténert törölni?
Igen. Volumen menüben ahol az "unused" szót látod, az azt jelenti,hogy azt a nem használt konténer, ezért kitörölheted.

Bármilyen eszközön tudok portainer-t futtatni?
Igen, akár rpi (Raspberry PI), akár x86 (asztali gép, építet NAS...) akár Amlogic/Rockchip eszközökön is.

Az összes konténer kompatibilis minden eszközzel?
Nem, itt ellenőrizned kell, hogy az adott image milyen eszközön képes futni. pl.: Amlogic boxokra a Linuxserver.io-s imagek csak korlátozott számban érhetőek el és egyéb Dockerhub-os image-k is.
Az x86-64-os architektúrájó eszközök esetében szinte korlátlan konténert tudunk futtatni mivel a legtöbb eszköz melyet használunk ezzel kompatibilis.

Hirdetés

3 pénzügyi döntés, amit minden kisvállalkozónak érdemes átgondolnia az év végéig

PR Ahogy az év vége közeledik, itt az ideje, hogy egy pillanatra megálljunk és áttekintsük vállalkozásunk pénzügyi helyzetét. Ne hagyjuk, hogy az év utolsó hónapjai elússzanak a sürgető feladatok és elfeledett határidők között!

Tovább a fórumba.