Toto je starší verze dokumentu!
Na vpsAdminOS je funkční Docker v aktuální verzi (v době psaní 18.03) s VFS storage driverem.
Nejprve ve vpsAdminu v detailu VPS povolte feature Docker (experimental).
Docker instalujte z repozitářů na docker.com, nedoporučujeme používat Docker z distribučních repozitářů, protože bývá starší a můžou tam mít nějaké patche. Instalujte podle návodu:
Dále je potřeba vytvořit si vlastní network. Výchozí bridge totiž používá
MASQUERADE
, což nastavuje jako zdrojovou adresu první IP adresu z rozhraní,
která je u nás adresa spojovací, ne veřejná. Proto si vytváříme vlastní síť, kde
místo MASQUERADE
používáme SNAT
a zdrojovou IP si nastavíme manuálně.
docker network create --attachable \ --opt 'com.docker.network.bridge.name=bridge-coi' \ --opt 'com.docker.network.bridge.enable_ip_masquerade=false' \ bridge-coi iptables -t nat -A POSTROUTING -s 172.18.0.0/16 ! -o bridge-coi -j SNAT --to-source <veřejná IPv4 adresa VPS>
Kontejnery, které potřebují funkční připojení k internetu spouštějte
s přepínačem --network bridge-coi
.
Nyní můžete zkusit docker run hello-world
:
docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. [...]
Networking otestujeme pomocí
docker run --network bridge-coi -i -t alpine ping -c 3 vpsfree.cz
Aktuálně funguje jen VFS storage driver. Ten je pomalejší a náročnější na diskový prostor než overlayfs/zfs/btrfs drivery. Chtěli bychom zprovoznit ZFS driver, nicméně ZFS on Linux ještě neumí delegovat datasety do kontejneru, nejdřív se to musí dodělat tam.
Pokud nějaká operace hlásí permission denied, pravděpodobně není povolená v AppArmor profilu. To můžeme napravit, nicméně potřebujeme mít možnost to reprodukovat a vědět ID VPS. Stavte se na IRC #vpsfree nebo #vpsadminos, případně pište na podporu.