Jak na cgroup, docker a systemd --user?

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Sobota Březen 19 18:54:17 CET 2022


On Sat, 19 Mar 2022, Vladimír Macek wrote:

> pouzivam systemd jako "supervisora": Spoustim pomoci systemctl --user 
> sluzbu. Ta ma povoleny linger, bezi tedy trvale i po odhlaseni 
> uzivatele.
>
> Prikaz v unite:
>
> ExecStart=docker run ...
>
> Na prvni pohled to dobre funguje. Nicmene systemd vyrobil CGroup pro ten 
> prikaz 'docker run', samotny kontejner ale bezi pod containerd. Pokud jsem 
> dobre pochopil, dusledek napriklad je, ze kdyz kontejner spadne, systemd o 
> tom nevi.

To záleží na tom, zda se ten docker run sám skončí, až když ten kontejner 
chcípne, nebo zda se chová jinak (viz též níže uvedené řešení č. 2).

Kromě toho tam ale máte opačný problém, jak zajistit, aby se kontejner 
ukončil, když se systemd snaží zastavit jeho službu.

> Znate nekdo elegantni a co nejjednodussi zpusob, jak to vylepsit, aby se dany 
> kontejner choval jako hlidana sluzba?

1. Používat Podman místo Docker-u.

2. Spustit to přes docker run --attach a zajistit, aby se to kontejneru 
drželo přes nějaký file descriptor, dokud je živý.

3. Po docker run dát docker wait.

-- 
Pavel Kankovsky aka Peak                      "Que sçay-je?"


Další informace o konferenci Linux