Svazek a připojení dockeru se používají k navázání adresářů v hostitelském OS na umístění v systému souborů kontejneru. I když se běžně používají k připojení celých adresářů, můžete je také použít k symbolickému propojení jednotlivých souborů.
Symbolický odkaz na Docker z hostitele
Připojení celých adresářů funguje dobře, pokud přepisujete celý seznam konfiguračních souborů, ale pokud chcete cílit pouze na jeden, budete muset použít připojení jednoho souboru. To je také užitečné, pokud chcete mít více připojení do stejného adresáře, ale z různých míst. Funguje to podobně jako běžný linuxový symbolický odkaz, až na to, že je spravován pomocí Dockeru a překračuje most mezi hostitelským a kontejnerovým souborovým systémem.
Normální připojení svazku Dockeru vyžaduje připojení k cílovému adresáři , v rámci kterého bude svazek propojen.
docker volume create nginx-config docker run -d --name devtest --mount source=nginx-config,target=/etc/nginx nginx:latest
U připojení připojení však může být zdrojem adresář nebo soubor na hostiteli. Připojení svazku toto nepodporují, a přestože je obvykle chcete používat, musíte použít připojení nižší úrovně, pokud chcete připojit jednotlivé soubory.
Chcete-li to provést, můžete spustit kontejner s příznakem --mount type=bind
, které podporují jednotlivé soubory, pokud zadáte cestu:
docker run -it --mount type=bind,source=/path/file.cfg,target=/etc/example/file.cfg nginx sh
Případně, pokud byste opravdu chtěli používat svazky Dockeru, můžete vytvořit svazek pouze se souborem, který plánujete připojit, připojit jej do dočasného adresáře v kontejneru a poté vytvořit skutečný symbolický odkaz uvnitř kontejneru (ve skriptu sestavení Dockeru ), který by odkazoval na adresář temp se souborem. To je pravděpodobně horší řešení než připojení k připojení celkově, ale umožňuje vám ukládat data prostřednictvím rozhraní API pro svazky Docker.