Hur Docker-sammanhang låter dig arbeta med flera värdar

0
139

Kontexter i Docker CLI ger en strömlinjeformad mekanism för att interagera med flera Docker-slutpunkter . Du kan ställa in sammanhang för var och en av dina värdar och växla mellan dem i farten.

När ett sammanhang är aktivt dirigerar Docker alla dina kommandon till den värden. Om du oftast använder en lokal Docker-installation men ibland behöver starta behållare i produktion är Docker-sammanhang ett alternativ tillgängligt för dig.

Alla giltiga Docker-slutpunkter kan förvandlas till ett sammanhang. Du kan ansluta vanliga Docker Engine-installationer, Docker Swarm-kluster och Kubernetes-kluster i molnet. Varje lagrat sammanhang innehåller all anslutningsinformation för den refererade värden.

Skapa ett sammanhang

Kontexter hanteras med docker-kontextkommandot. Du skapar nya sammanhang med hjälp av docker context create. Du måste ange ett namn för ditt sammanhang och dess slutpunktskonfiguration.

Så här skapar du ett sammanhang som ansluts till ett Docker-uttag som exponeras över TCP på en fjärrvärd:

docker-sammanhang skapar fjärrvärd –docker värd = tcp: ///min-fjärrvärd: 2735 Annonsering

Kontexter använder Docker Swarm som standardcontainer orchestrator. Du kan uttryckligen ställa in detta med en flagga:

docker-sammanhang skapa fjärrvärd –default-stack-orchestrator = svärm –docker värd = tcp: ///min-fjärrvärd: 2735

För att skapa en anslutning till Kubernetes, ändra orkestratortypen. Du måste också lägga till –kubernetes-flaggan och ange sökvägen till en Kubernetes-konfigurationsfil:

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

Välja sammanhang

Den aktiva kontexten byts med användning av docker-sammanhang. Skicka namnet på det sammanhang som du vill aktivera.

docker-sammanhang använder fjärrvärd

Alla efterföljande CLI-kommandon kommer att köras med hjälp av den slutpunkt som ges i det nya sammanhanget. Det aktiva sammanhanget kvarstår automatiskt tills du ändrar det. För att växla till ett annat sammanhang, kör docker-kontext igen. Du kan återgå till standardkontext med ditt lokala Docker-uttag genom att ange standard som kontextnamn.

Du kan alltid åsidosätta det valda sammanhanget genom att lägga till –context-flaggan till valfritt Docker-kommando:

docker kör ubuntu: senaste –context fjärrvärd

Miljövariabeln DOCKER_CONTEXT fungerar också som ett alternativ till –context-flaggan. Endera mekanismen underlättar en tillfällig växling till ett annat sammanhang utan att du kör och återställer ett docker-kontextanvändningskommando.

Annonsering

Om du använder miljövariabeln DOCKER_HOST kommer den aktiva kontexten att åsidosättas. Den här variabeln tvingar Docker att använda en viss daemon-slutpunkt istället för den som tillhandahålls av sammanhanget.

Du kan inspektera det aktiva sammanhanget genom att köra docker-sammanhang ls. Det här kommandot listar alla tillgängliga sammanhang i din CLI-konfiguration. Det aktiva sammanhanget markeras med en asterisk. För att radera ett sammanhang, kör docker-kontext rm och ange kontextnamnet. Det är inte möjligt att radera standardkontext.

Synkronisera sammanhang mellan maskiner

Kontextfiler lagras i din Docker CLI: s konfigurationskatalog. Detta är vanligtvis $ HOME/.docker på Linux. Du hittar dina sammanhang i underkatalogen för sammanhang. Varje sammanhang får sin egen mapp med en unik hash. Inuti hittar du en meta.json-fil som beskriver sammanhanget. Endast skapade sammanhang har filer lagrade på disken. Standardkontexten ärver inställningarna från din Docker-daemon-konfiguration.

Om du vill synkronisera kontextkonfigurationen kan du säkerhetskopiera sammanhangsmappen för att flytta den till en annan maskin. Du kan använda en Rsync-överföring eller ett Git-arkiv för att förenkla regelbundna uppdateringar. Att länka mappen till en nätverksresurs kan också vara ett alternativ beroende på dina krav.

Docker låter dig också exportera och importera sammanhang via CLI:

docker-kontext exportera min-kontext

Detta skapar en my-context.dockercontext-fil i din arbetskatalog. Filen innehåller meta.json-innehållet samt lite extra information, till exempel sammanhangets namn. Överför den här filen till en annan maskin och kör docker-context importera my-context.dockercontext för att ladda kontextkonfigurationen.

Annons

Alternativt kan du exportera en fristående Kubernetes-konfigurationsfil för Kubernetes-sammanhang:

docker context export kubernetes-context –kubeconfig

Detta ger en vanlig & # 8220; kubeconfig & # 8221; fil kompatibel med Kubernetes ekosystemverktyg som kubectl. Möjligheten att skaffa en kubeconfig-fil från ett Docker-sammanhang förbättrar verktygskedjans interoperabilitet. Ingenting i filen kommer att vara specifikt för Docker CLI.

Om du behöver redigera ett sammanhang, använd kommandot docker-kontextuppdatering. Detta accepterar samma flaggor som docker-sammanhang skapar. Om du gör massuppdateringar kan du redigera meta.json-filerna för att direkt manipulera dina sammanhang. Du kan inspektera en metajson-fil från sitt sammanhang från CLI med docker-sammanhang inspektera mitt-sammanhang.

Slutsats

Docker-sammanhang är användbara när du behöver distribuera containrar i flera oberoende miljöer. Du kan ställa in kontexter för ditt lokala Docker-uttag, en delad teamstaging-server och din produktion Kubernetes-server.

Docker har inbyggt stöd för Microsoft Azure och Amazon ECS-containermoln. som sammanhang också. Det finns ingen begränsning för antalet sammanhang du kan skapa, så du har god mångsidighet när du flyttar mellan dina värdar.

Den största funktionella frågan med sammanhang är förmodligen möjligheten att av misstag köra ett kommando mot fel sammanhang. Om du har glömt bort att du befinner dig i ditt produktionssammanhang kan körning av docker rm-databascontainer få förödande konsekvenser. Om du är osäker, kör dockningskontext ls först för att kontrollera vad du har valt.