Docker: Aan de slag
Hoe te beginnen met Stackhero voor Docker
👋 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!
Hoe Docker CLI op afstand te gebruiken
Docker CLI moet op uw computer zijn geïnstalleerd. Als u het nog niet hebt geïnstalleerd, kunt u het hier downloaden: https://www.docker.com/products/docker-desktop/.
Met Stackhero voor Docker kunt u op afstand verbinding maken met uw Docker-server vanaf uw computer, net zoals u lokaal zou werken. Deze configuratie stelt u in staat uw gebruikelijke workflow te behouden en biedt een robuuste manier om uw containers in productie te beheren.
Om dit te bereiken, worden Docker "contexts" gebruikt. Docker contexts stellen u in staat om de Docker CLI op uw computer te gebruiken en te specificeren waar de opdrachten moeten worden uitgevoerd: op uw lokale Docker daemon (zoals gebruikelijk) of op uw Stackhero voor Docker-instantie.
Docker-certificaten installeren
Om op afstand verbinding te maken met uw Stackhero voor Docker-instantie, moet u eerst de certificaten installeren. Deze certificaten zorgen voor veilige authenticatie en encryptie tussen uw computer en uw Stackhero voor Docker-instantie.
Op uw computer kunt u de volgende opdracht gebruiken:
# HOST is de domeinnaam van uw Stackhero voor Docker-instantie (<XXXXXX>.stackhero-network.com).
# SERVICE_ID is uw Stackhero-service-ID.
# CERTIFICATES_PASSWORD is het wachtwoord dat is gedefinieerd in uw Stackhero voor Docker-configuratie.
(export HOST="<XXXXXX>.stackhero-network.com"
export SERVICE_ID="<SERVICE_ID>"
export CERTIFICATES_PASSWORD="<CERTIFICATES_PASSWORD>"
cd /tmp/ \
&& curl -o certificates.tar https://docker:$CERTIFICATES_PASSWORD@$HOST/stackhero/docker/certificates.tar \
&& tar -xf certificates.tar \
&& (docker context rm -f $HOST 2> /dev/null || true) \
&& docker context create $HOST \
--description "$SERVICE_ID ($HOST)" \
--docker "host=tcp://$HOST:2376,ca=ca.pem,cert=cert.pem,key=key.pem")
U hebt nu een Docker-context gemaakt die is genoemd naar uw service-domeinnaam. Om al uw contexts te bekijken, kunt u de opdracht docker context ls uitvoeren.
waarschuwing Als u uw service-domein bijwerkt, zullen de certificaten veranderen en moet u ze opnieuw installeren.
Docker-containers op afstand uitvoeren
Momenteel, als u uw containers opsomt met de opdracht docker ps, zal uw Docker CLI uw lokale Docker daemon gebruiken, waarbij containers worden weergegeven die op uw computer draaien.
U kunt bijvoorbeeld deze opdracht uitvoeren om het openbare IP van uw Docker daemon te krijgen: docker run --rm alpine wget -q -O - ifconfig.me. Aangezien de container op uw computer draait, ziet u het IP van uw internetrouter als antwoord.
Laten we de Docker-context wijzigen om uw Stackhero voor Docker-instantie te gebruiken. Voer eenvoudig de opdracht docker context use <XXXXXX>.stackhero-network.com uit. Nu zullen Docker-opdrachten die op uw computer worden gestart, veilig worden uitgevoerd op uw externe Docker daemon.
Voer dezelfde opdracht opnieuw uit om het openbare IP van uw Docker daemon op te halen: docker run --rm alpine wget -q -O - ifconfig.me. U zou nu het openbare IP van uw Stackhero voor Docker-instantie moeten zien, wat bevestigt dat uw container op uw server draait en niet meer op uw computer.
Om terug te keren naar het gebruik van uw lokale Docker daemon, schakelt u eenvoudig uw Docker-context terug naar "default": docker context use default.
Wanneer u een volume op een externe container monteert, zijn de toegankelijke gegevens die op de externe server en niet die op uw computer. Het uitvoeren van een opdracht zoals
docker run -it -v ${PWD}:/mnt alpinezal dus niet de directory van uw computer monteren zoals u misschien verwacht.
Implementeren met Docker-Compose
Net als de Docker CLI zal de Docker-compose CLI uw huidige context gebruiken. Daarom, zodra u bent overgeschakeld naar uw externe instantie met docker context use <XXXXXX>.stackhero-network.com, zal elke Docker-compose-opdracht ook op uw externe instantie worden uitgevoerd.
Het gebruik van de
docker context-opdracht is effectief, maar het is misschien niet de beste aanpak bij het omgaan met contexts in uw scripts of Makefiles. Overweeg in dergelijke gevallen deDOCKER_CONTEXT-omgevingsvariabele te gebruiken, die gedetailleerd wordt beschreven in onze geavanceerde documentatiepagina's.