Docker host telepítése (Fossa)
Vázlatos, kritikával olvasd!
Tartalomjegyzék
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
- How to Install Docker On Ubuntu 20.04 LTS Focal Fossa (Linuxconfig.org)
- Install Docker Engine on Ubuntu (Docker Docs)
- What is docker.io in relation to docker-ce and docker-ee? (StackOverflow)
- The docker.io Debian package is back to life (Collabora)
- Post-installation steps for Linux (Docker Docs)
- To Fix The Docker and UFW Security Flaw Without Disabling Iptables (GitHub)