On 06/09/2018 09:45 AM, ondra.gersl@gmail.com wrote:
Už to testuju na Debian 9, "docker run hello-world" mi funguje v pohodě. Zkoušel jsem např. node:alpine, který se však z nějakého důvodu startuje poměrně pomalu. Příkaz: "docker run --rm -it --network bridge-coi node:alpine wget --help" trvá cca. 4 vteřiny, přitom na jiném virtuálu (u wedosu) trvá cca. 1 vteřinu. Nginx se mi zatím rozchodit nepodařilo - příkaz "docker run --rm --name some-nginx -p 8080:80 nginx:alpine" sice kontejner spustí, ale vrací 403.
Pomalé je to protože VFS storage driver. Na wedosu to určitě používá overlayfs driver.
Na Debian 9 Docker nastavuje špatné oprávnění pro rootfs kontejneru, proto nefunguje jiný uživatel než root. Předpokládám, že nginx se spustí pod rootem a po nabindování portu se přepne na jiného uživatele. Od té chvíle si nic z disku nepřečte. Použij Ubuntu, nebo happy debugging. Ve strace vidím ten chmod 0600, ale kde/co/proč to volá netuším. V KB je na to upozornění.
Jinak jsem si všiml, že parametr "--network bridge-coi" je třeba přidávat i k "docker build", pokud je při balení image třeba připojení do internetu.
Včera jsem ještě řešil gitlab runner s docker executorem, který neumí správně linkovat služby na jiné síti než té výchozí. Jestli to jde nějak nastavit v Dockeru nevím, ale podařilo se mi tu výchozí síť přenastavit skriptem tak, aby fungovala, viz KB:
https://kb.vpsfree.cz/navody/server/gitlab_runner#uprava_vychozi_site
systemd zavolá ten skript na přenastavení iptables po každém spuštění dockerd. Moc se mi tohle řešení nelíbí, ale nemusíš specifikovat vlastní --network, pokud to nejde nebo nechceš.
Jakub