GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak vám kontexty Dockeru umožňují pracovat s více hostiteli

Kontexty v Docker CLI poskytují zjednodušený mechanismus pro interakci s více koncovými body Dockeru. Můžete nastavit kontexty pro každého ze svých hostitelů a přepínat mezi nimi za běhu.

Když je kontext aktivní, Docker přesměruje všechny vaše příkazy na tohoto hostitele. Pokud většinou používáte místní instalaci Dockeru, ale někdy potřebujete spustit kontejnery v produkci, kontexty Dockeru jsou jednou z dostupných možností.

Jakýkoli platný koncový bod Dockeru lze změnit na kontext. V cloudu můžete propojit běžné instalace Docker Engine, clustery Docker Swarm a clustery Kubernetes. Každý uložený kontext obsahuje všechny informace o připojení pro odkazovaného hostitele.

Vytvoření kontextu

Kontexty jsou spravovány pomocí docker context příkaz. Nové kontexty vytvoříte pomocí docker context create . Musíte zadat název svého kontextu a také jeho konfiguraci koncového bodu.

Zde je návod, jak vytvořit kontext, který se připojuje k soketu Docker vystavenému přes TCP na vzdáleném hostiteli:

docker context create remote-host --docker host=tcp:///my-remote-host:2735

Kontexty používají Docker Swarm jako svůj výchozí orchestrátor kontejnerů. Můžete to explicitně nastavit pomocí příznaku:

docker context create remote-host 
    --default-stack-orchestrator=swarm 
    --docker host=tcp:///my-remote-host:2735

Chcete-li vytvořit připojení ke Kubernetes, změňte typ orchestrátoru. Musíte také přidat --kubernetes příznak a zadejte cestu ke konfiguračnímu souboru Kubernetes:

docker context create kubernetes-host 
    --default-stack-orchestrator=kubernetes 
    --kubernetes config-file=/home/username/.kube/config 
    --docker host=unix:///var/run/docker.sock

Výběr kontextů

Aktivní kontext se přepne pomocí docker context use . Předejte název kontextu, který chcete aktivovat.

docker context use remote-host

Všechny následující příkazy CLI budou provedeny pomocí koncového bodu daného novým kontextem. Aktivní kontext bude automaticky přetrvávat, dokud jej nezměníte. Chcete-li přepnout do jiného kontextu, spusťte docker context use znovu. Můžete se vrátit k výchozímu kontextu s místním soketem Docker předáním default jako název kontextu.

Vybraný kontext můžete vždy přepsat přidáním --context příznak libovolnému příkazu Docker:

docker run ubuntu:latest --context remote-host

DOCKER_CONTEXT Proměnná prostředí také funguje jako alternativa k --context vlajka. Oba mechanismy umožňují dočasné přepnutí do jiného kontextu, aniž byste museli spustit a vrátit docker context use příkaz.

Pomocí DOCKER_HOST Proměnná prostředí také přepíše aktivní kontext. Tato proměnná nutí Docker používat konkrétní koncový bod démona místo toho, který poskytuje kontext.

Aktivní kontext můžete zkontrolovat spuštěním docker context ls . Tento příkaz uvádí všechny kontexty dostupné ve vaší konfiguraci CLI. Aktivní kontext je zvýrazněn hvězdičkou. Chcete-li odstranit kontext, spusťte docker context rm , poskytující kontextový název. Není možné smazat default kontextu.

Synchronizace kontextů mezi počítači

Kontextové soubory jsou uloženy v konfiguračním adresáři vašeho Docker CLI. Obvykle je to $HOME/.docker na Linuxu. Své kontexty najdete v contexts podadresář. Každý kontext dostane svou vlastní složku pojmenovanou jedinečným hashem. Uvnitř najdete meta.json soubor, který popisuje kontext. Pouze vytvořené kontexty mají soubory uložené na disku. default kontext zdědí nastavení z vaší konfigurace démona Docker.

Pokud chcete synchronizovat konfiguraci kontextu, můžete zálohovat contexts složku a přesunout ji na jiný počítač. Ke zjednodušení pravidelných aktualizací můžete použít přenos Rsync nebo úložiště Git. V závislosti na vašich požadavcích může být také možnost propojit složku se sdíleným síťovým umístěním.

Docker vám také umožňuje exportovat a importovat kontexty prostřednictvím rozhraní CLI:

docker context export my-context

Tím se vytvoří my-context.dockercontext soubor ve vašem pracovním adresáři. Soubor obsahuje meta.json obsah a také některé další informace, jako je název kontextu. Přeneste tento soubor na jiný počítač a spusťte docker context import my-context.dockercontext k načtení konfigurace kontextu.

Případně můžete exportovat samostatný konfigurační soubor Kubernetes pro kontexty Kubernetes:

docker context export kubernetes-context --kubeconfig

Tím vytvoříte běžný soubor „kubeconfig“ kompatibilní s nástroji ekosystému Kubernetes, jako je kubectl . Možnost získat soubor kubeconfig z kontextu Dockeru zlepšuje interoperabilitu toolchainu. Nic v souboru nebude specifické pro Docker CLI.

Pokud potřebujete upravit kontext, použijte docker context update příkaz. To přijímá stejné příznaky jako docker context create . Pokud provádíte hromadné aktualizace, můžete upravit soubor meta.json soubory k přímé manipulaci s vašimi kontexty. Můžete si prohlédnout meta.json kontextu soubor z CLI s docker context inspect my-context .

Závěr

Kontexty dockeru jsou užitečné, když potřebujete nasadit kontejnery ve více nezávislých prostředích. Můžete nastavit kontexty pro místní soket Docker, sdílený týmový pracovní server a produkční server Kubernetes.

Docker má vestavěnou podporu pro kontejnerové cloudy Microsoft Azure a Amazon ECS, které lze také přidat jako kontexty. Počet kontextů, které můžete vytvořit, není nijak omezen, takže při pohybu mezi hostiteli máte dobrou všestrannost.

Pravděpodobně největším funkčním problémem kontextů je možnost náhodného spuštění příkazu ve špatném kontextu. Pokud jste zapomněli, že jste ve své production kontextu, spusťte docker rm database-container může mít zničující následky. Máte-li pochybnosti, spusťte docker context ls nejprve zkontrolujte, co jste vybrali.


Docker
  1. Jak nainstalovat Jenkins pomocí Docker

  2. Jak nasadit aplikace s Rancherem

  3. Jak nasadit kontejner nginx s Dockerem na Linode

  1. Jak nainstalovat WordPress s Dockerem, snadno sledovatelný průvodce

  2. Jak přidat více hostitelů v phpMyAdmin

  3. Jak pracovat s více verzemi Java pod Linuxem

  1. Jak přesunout obrazy Dockeru mezi hostiteli

  2. Jak nasadit mikroslužby s Dockerem

  3. Jak sdílet obrázky Docker s ostatními