Docker host telepítése (Fossa)

Innen: AdminWiki
A lap korábbi változatát látod, amilyen KZoli (vitalap | szerkesztései) 2021. október 15., 09:29-kor történt szerkesztése után volt. (Tűzfalbeállítások (UFW) módosítása a Docker használatához)

Vázlatos, kritikával olvasd!

Docker házirend

TODO!

Telepítés

A Docker (community edition) telepíthető az Ubuntu repositoryból (docker.io, Debian way), vagy a docker.com repositoryból (docker-ce, Golang way). A fő különbség, hogy a docker.ce statikusan linkelt (az összes függőségével egybecsomagolva érkezik), míg a docker.io esetében a függőségeket a Debian/Ubuntu kezeli (ami jelentős erőfeszítést igényel a maintainer-től). A Debian-way mellett szólhat a kiterjedtebb security- és tesztelési mechanizmus; ellene szólhat a kétely, hogy képes lesz-e lépést tartani a Docker kiadásaival az LTS támogatás teljes időtartamában.

Mivel mindkét kiadás egyazon operációs rendszer alá nem telepíthető, választanunk kell közülük. Jelen leírásban a Debian way-t preferálom.

docker.io

A szokásos módon telepíthető:

apt install docker.io docker-compose  # Sok függőség, elsősorban Python

docker-ce

TODO!

Beállítások

Automatikus indítás

A telepített engine nem fut automatikusan, ezt külön engedélyezni kell:

systemctl enable --now docker
systemctl status docker
systemctl start docker  # ha nem futna

Ezután az engine elindul, és a szervergép újraindításakor is automatikusan futni kezd.

Kezelési jog nem sudo-képes felhasználóknak

A Docker engine (sudo használata nélküli) kezelésére a docker Linux csoport tagjai jogosultak, ezért a dockeradmin felhasználót ebbe a csoportba fel kell venni:

sudo usermod -aG docker dockeradmin

A következő belépéstől kezdve a dockeradmin felhasználó már kiadhatja a Docker kezelő parancsokat.

Tűzfalbeállítások (UFW) módosítása a Docker használatához

Alapértelmezésben az UFW blokkolja a szolgáltatások (Docker image-ek) kommunikációját a host gépen futó szolgáltatásokkal (pl. levélküldés a host MTA-n keresztül). Engedélyezzük a szolgáltatások alhálózatairól és a host gép közötti forgalmat korlátozások nélkül (átgondolni: TODO!):

sudo ufw allow in  from 172.17.0.0/16 to any
sudo ufw allow out from any to 172.17.0.0/16

Alapértelmezésben a Docker által exportált portok kívülről láthatóak lesznek annak ellenére, hogy az UFW-ban nem engedélyeztük ezeket az in szabályokban.

A dockerizált szolgáltatások számára engedélyezzünk korlátlan kommunikációt a host géppel:

TODO!

Levélküldés engedélyezése a dockerezett szolgáltatások számára

Hasznos lehet, ha a szolgáltatások is igénybe vehetik a korábban beállított technikai levélküldést. Ehhez engedélyezzük a mail relay-t a Postfixben a Docker networkök felől is:

sudo mcedit /etc/postfix/main.cf

[...]
mynetworks = 127.0.0.0/8 [...] 172.17.0.0/16
[...]

sudo systemctl restart postfix

Gyorsteszt

dockeradmin felhasználóként bejelentkezve futtassuk le a hello-world példa image-et:

docker run hello-world

Siker esetén a Docker alapfunkciói használhatóak.

Docker host szolgáltatások

Irodalom