A Docker egy OS-szintű virtualizációt megvalósító szoftver.1

Telepítés

openSUSE

Ez volt a régi módszer, amely Leapen is működött:

# zypper in docker docker-compose
# usermod -aG docker $USER
# systemctl start docker
$ docker version
$ docker-compose version

Csakhogy muszáj volt Docker Compose V2-re váltanunk, és úgy már kevésnek bizonyult az OS repóban található verziószám. Szerencsére van megfelelő repó:

# zypper ar https://download.opensuse.org/repositories/Virtualization:/containers/15.5/ containers
# zypper mr -r -p 90 containers
# zypper up --allow-vendor-change
$ docker version
$ docker compose version

Debian

Telepítsük a dokumentáció szerint a saját repójából.

Olvassuk el a Debian megjegyzéseit.

2023 februárjában a docker-ce 23.0.0 verziója kötelezővé tette az apparmor biztonsági modult, de nem függőségként. Így ha az nem volt telepítve, akkor apt upgrade után leállt minden container.

Ez volt a hibaüzenet bármely container indításakor:

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: unable to apply apparmor profile: apparmor failed to apply profile: write /proc/self/attr/apparmor/exec: no such file or directory: unknown.

A megoldási lehetőségek: telepítsük az apparmort vagy telepítsük a docker korábbi verzióját. Az előbbi az ajánlott:

# apt install apparmor
# systemctl restart docker

Tárhely

A docker összes cucca alapértelmezetten a /var/lib/docker/ mappában van (images, volumes). Egyrészt érdemes lehet figyelni rá, másrészt ez is indokolttá teheti a /var/ külön partícióra tételét.

# du -sh /var/lib/docker/
$ docker image ls
$ docker volume ls

Pull, prune

Így frissítsük az image-eket egy compose projektben:

$ cd myproject
$ docker compose pull && docker compose up -d

A régi image-ektől nem árt megszabadulni. Vagy futtatjuk magunk a docker image prune parancsot, vagy felveszünk egy sort a felhasználónk crontabjába a crontab -e parancs segítségével:

16 4 * * 1 /usr/bin/docker system prune -f

  1. Ajánlott olvasmány: Nickoloff, Jeff – Kuenzli, Stephen: Docker in Action. 2nd edition. Manning, 2019-10. ↩︎