Uživatelské nástroje

Nástroje pro tento web


navody:vps:vpsadminos:docker

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
navody:vps:vpsadminos:docker [2018/06/08 16:25] – [Známé problémy] Aithernavody:vps:vpsadminos:docker [2023/02/25 21:02] (aktuální) – třeba nainstalovat gnupg, jinak apt-key odmítá fungovat s3w3n
Řádek 1: Řádek 1:
 <page>manuals:vps:vpsadminos:docker</page> <page>manuals:vps:vpsadminos:docker</page>
 ====== Docker na vpsAdminOS ====== ====== Docker na vpsAdminOS ======
-Na vpsAdminOS je funkční Docker v aktuální verzi (v době psaní 18.03) s VFS 
-storage driverem. 
- 
 ===== Instalace ===== ===== Instalace =====
-Nejprve ve vpsAdminu v detailu VPS povolte feature **Docker (experimental)**. 
  
 Docker instalujte z repozitářů na docker.com, nedoporučujeme používat Docker 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. +z distribučních repozitářů, protože bývá starší a můžou tam mít nějaké patche 
-Instalujte podle návodu:+navíc. Instalujte podle návodu:
  
-  * [[https://docs.docker.com/install/linux/docker-ce/ubuntu/|Ubuntu 18.04]] (místo //stable// repozitáře použijte //test//, dokud se Docker neuráčí [[https://github.com/docker/for-linux/issues/290|vydat stable verzi]]) +  * [[https://docs.docker.com/engine/install/ubuntu/|Ubuntu]] 
-  * [[https://docs.docker.com/install/linux/docker-ce/fedora/|Fedora 28]] +  * [[https://docs.docker.com/engine/install/fedora/|Fedora]] 
-  * [[https://docs.docker.com/install/linux/docker-ce/debian/|Debian 9]] (pozor na [[#zname_problemy|známé problémy]])+  * [[https://docs.docker.com/engine/install/debian/|Debian]] 
 +  * [[https://docs.docker.com/engine/install/centos/|CentOS 7 a 8]]
  
-Následně upravte ''docker.service'' takaby se nepokoušel nastavovat +Fungovat mohou samozřejmě i jiné distribuceale uvádíme jen ty, které jsme testovali.
-AppArmor:+
  
 +=== Ubuntu 20.04 LTS ===
 <code> <code>
-mkdir -p /etc/systemd/system/docker.service.d +apt-get -y update  
-cat <<EOF > /etc/systemd/system/docker.service.d/override.conf  +apt-get -y install apt-transport-https ca-certificates curl software-properties-common gnupg 
-[Service] +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -  
-Environment=container=lxc +add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"  
-EOF +apt-get -y update  
-systemctl daemon-reload +apt-get -y install docker-ce 
-systemctl restart docker.service+
 </code> </code>
  
-Dále je potřeba vytvořit si vlastní //network//. Výchozí bridge totiž používá +=== Fedora 33 === 
-''MASQUERADE'', což nastavuje jako zdrojovou adresu první IP adresu rozhraní, +Upstream verzi Dockeru //moby-engine// nainštalujete priamo oficiálnych repozitárov distribúcie: 
-která je u nás adresa spojovací, ne veřejná. Proto si vytváříme vlastní síť, kde +<code> 
-místo ''MASQUERADE'' používáme ''SNAT'' a zdrojovou IP si nastavíme manuálně.+dnf install -y moby-engine 
 +</code>
  
 +Je potrebné nakonfigurovať //dockerd// daemona aby bežal s cgroupdriver=cgroupfs, inak narazite na nasledujúci problém:
 <code> <code>
-docker network create --attachable \ +docker run hello-world 
-                      --opt 'com.docker.network.bridge.name=bridge-coi+docker: Error response from daemon: OCI runtime create failed: cgroup v2 not enabled on this host, can't use systemd (rootless) as cgroups manager: unknown
-                      --opt 'com.docker.network.bridge.enable_ip_masquerade=false' \ +</code>
-                      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>+Konfiguráciu cgroup driveru je možné previesť pomocou overridu //ExecStart// pre docker.service: 
 +<code> 
 +$ systemctl edit docker 
 +ExecStart=/usr/bin/dockerd \ 
 +          --host=fd:// \ 
 +          --exec-opt native.cgroupdriver=cgroupfs \ 
 +          $OPTIONS
 </code> </code>
  
-Kontejnery, které potřebují funkční připojení k internetu spouštějte +=== CentOS 7 === 
-s přepínačem ''%%--network bridge-coi%%''.+ 
 +Podle návodu na docker.com nainstalujeme //docker-ce//. Před spuštěním je ještě potřeba upravit konfiguraci Docker daemona v /etc/docker/daemon.json 
 +* nastavit cgroup driver 
 +<code> 
 +
 +    "exec-opt": "native.cgroupdriver=cgroupfs", 
 +
 +</code> 
 + 
 + 
 +==== Všeobecně ==== 
 +Ověříme, zda běží docker v pořádku: 
 + 
 +<code> 
 +systemctl status docker.service 
 + 
 +● docker.service Docker Application Container Engine 
 +    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e 
 +    Active: active (running) since Sun 2020-02-23 14:55:22 UTC; 9s ago 
 +      Docs: https://docs.docker.com 
 +  Main PID: 2893 (dockerd) 
 +     Tasks: 30 
 +    CGroup: /system.slice/docker.service 
 +            └─2893 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/contain 
 +</code> 
 + 
 +<note> 
 +Pokud nenaběhne ''docker.service'', může se jednat o tento už opravený [[https://github.com/containerd/containerd/issues/2772|bug v containerd]]. Řešením je buď 
 +nahradit ''/sbin/modprobe'', nebo upravit ''containerd.service'' a změnit 
 +volbu ''ExecStartPre''
 +<code> 
 +mv /sbin/modprobe /sbin/modprobe.old && ln -s /bin/true /sbin/modprobe 
 +</code> 
 +</note>
  
 Nyní můžete zkusit ''docker run hello-world'': Nyní můžete zkusit ''docker run hello-world'':
Řádek 55: Řádek 91:
 </code> </code>
  
-===== Storage driver ===== +Networking otestujeme pomocí: 
-Aktuálně funguje jen //VFS// storage driver. Ten je pomalejší a náročnější na +<code> 
-diskový prostor než overlayfs/zfs/btrfs driveryChtěli bychom zprovoznit ZFS +docker run -it alpine ping -c 3 vpsfree.cz 
-driver, nicméně ZFS on Linux ještě neumí delegovat datasety do kontejneru, +</code>
-nejdřív se to musí dodělat tam. +
- +
-===== Známé problémy ===== +
- +
-  * Docker na Debian 9 se nechová správně, rootfs kontejneru mají podívné oprávnění (0600) a nevíme proč. Nefungují pak kontejnery, které používají jiného uživatele, než je root. +
-  * Povolení Dockeru dělá problémy některým verzím systemd, dokud se PR [[https://github.com/systemd/systemd/pull/8447|#8447]] nedostane do stable verze. Ubuntu 18.04 a Debian 9 jsou ok, Fedora 28 ne.+
  
 ===== Hlášení chyb ===== ===== Hlášení chyb =====
navody/vps/vpsadminos/docker.1528475146.txt.gz · Poslední úprava: 2018/06/08 16:25 autor: Aither