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.comdoor uw specifieke Docker-instantiedomein (<XXXXXX>.stackhero-network.com).
Beheren van Docker-contexten in bash-scripts
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.
Externe configuratie met een .env-bestand
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
Gebruik van Docker-contexten in Makefiles
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 regeldocker run [...]begint met een TAB-teken, niet met spaties.
Gebruik van .env-bestanden in Makefiles
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 regeldocker run [...]begint met een TAB-teken in plaats van spaties.