Docker: Geavanceerd gebruik van contexten

Hoe Docker-contexten in uw scripts te gebruiken

👋 Welkom bij de documentatie van Stackhero!

Stackhero biedt een kant-en-klare Docker cloud CaaS (Containers as a Service) oplossing die tal van voordelen biedt, waaronder:

  • Zet eenvoudig uw containers in productie met slechts een docker-compose up.
  • Aanpasbare domeinnaam beveiligd met HTTPS (bijvoorbeeld, https://api.uw-bedrijf.com, https://www.uw-bedrijf.com, https://backoffice.uw-bedrijf.com).
  • Optimale prestaties en robuuste beveiliging aangedreven door een privé en toegewijde VM.
  • Moeiteloze updates met slechts één klik.

Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Docker CaaS cloud hosting oplossing van Stackhero te proberen en uw containers in productie te zetten!

Werken met Docker context use-commando's is ideaal voor het handmatig uitvoeren van commando's. Maar bij het gebruik van scripts zijn er betere alternatieve methoden die het proces kunnen vereenvoudigen. In plaats van het commando direct aan te roepen, kunt u de gewenste context instellen met de DOCKER_CONTEXT-omgevingsvariabele. Deze aanpak integreert naadloos in scriptworkflows en behoudt de duidelijkheid van de configuratie.

Vervang in de gegeven voorbeelden <XXXXXX>.stackhero-network.com door uw specifieke Docker-instantiedomein (<XXXXXX>.stackhero-network.com).

Hier is een voorbeeld van hoe u de Docker-context binnen een bash-script instelt:

#!/bin/bash
set -e

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

echo "IP van Docker voor Stackhero-instantie:"
docker run --rm alpine wget -q -O - ifconfig.me

Door de DOCKER_CONTEXT-omgevingsvariabele in te stellen, kunt u de actieve context gemakkelijk direct in uw scripts beheren.

Om te voorkomen dat de DOCKER_CONTEXT hard gecodeerd wordt, kunt u de waarde laden vanuit een .env-bestand. Deze methode houdt de omgevingsinstellingen georganiseerd en vergemakkelijkt aanpassingen:

#!/bin/bash
set -e

source .env

echo "IP van Docker voor Stackhero-instantie:"
docker run --rm alpine wget -q -O - ifconfig.me

Maak een .env-bestand met de volgende inhoud:

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

U kunt ook de DOCKER_CONTEXT-variabele in een Makefile instellen. Hier is een voorbeeld van het exporteren van de variabele en het uitvoeren van een Docker-container:

# Makefile
export DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

getIp:
	docker run --rm alpine wget -q -O - ifconfig.me

Na het maken van de Makefile, roept u het commando aan met:

make getIp

Als u de fout Makefile: *** missing separator. Stop. tegenkomt, zorg ervoor dat de regel docker run [...] begint met een TAB-teken, niet met spaties.

U kunt de configuratie verder vereenvoudigen door een .env-bestand in uw Makefile op te nemen. Deze aanpak zorgt voor gecentraliseerd beheer van uw omgevingsinstellingen:

# Makefile
include .env
export

getIp:
	docker run --rm alpine wget -q -O - ifconfig.me

Maak een .env-bestand met deze inhoud:

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

Voer vervolgens het commando uit:

make getIp

Als u de fout Makefile: *** missing separator. Stop. tegenkomt, controleer dan of de regel docker run [...] begint met een TAB-teken in plaats van spaties.