Docker: Premiers pas

Gestion Docker à distance rapide et sécurisée avec Stackhero for Docker

Bienvenue dans la documentation Stackhero

Stackhero offre une plateforme Docker cloud CaaS (Containers as a Service) prête à l’emploi, conçue pour des déploiements de containers rapides et fiables :

  • Déployez en production avec un simple docker-compose up. Aucune configuration supplémentaire requise : démarrez simplement vos containers.
  • Choisissez votre propre nom de domaine, automatiquement sécurisé avec HTTPS (par exemple : https://api.votre-entreprise.com, https://www.votre-entreprise.com ou https://backoffice.votre-entreprise.com).
  • Profitez de performances élevées et d’une sécurité robuste sur une infrastructure privée et dédiée.
  • Appliquez les mises à jour en un clic pour une maintenance simple et sans tracas.

Vos containers peuvent être en production en environ cinq minutes. Stackhero prend en charge l’infrastructure, les mises à jour et la sécurité pour vous permettre de vous concentrer sur la livraison de vos applications. Pour en savoir plus sur l’hébergement cloud Docker CaaS.

Docker CLI doit être installé sur votre ordinateur. Si ce n'est pas déjà fait, vous pouvez le télécharger depuis le site officiel de Docker : Docker Desktop.

Avec Stackhero for Docker, vous pouvez gérer vos conteneurs à distance avec Docker CLI, exactement comme vous le feriez en local. Cela signifie que vous conservez votre flux de travail habituel, mais vous pouvez maintenant exécuter vos commandes directement sur votre serveur Docker prêt pour la production, de façon sécurisée et efficace.

Les "contexts" Docker rendent cela possible. Les contexts vous permettent d'indiquer à Docker CLI où envoyer vos commandes : vers votre démon Docker local ou vers votre instance Stackhero for Docker. Le changement de context est rapide et transparent.

Pour vous connecter de façon sécurisée à votre instance Stackhero for Docker, vous devez installer ses certificats sur votre ordinateur. Ces certificats gèrent l'authentification et le chiffrement, assurant ainsi la confidentialité et la protection de votre connexion.

Vous pouvez utiliser la commande suivante pour télécharger et configurer les certificats :

# HOST correspond au nom de domaine de votre instance Docker (<XXXXXX>.stackhero-network.com).
# SERVICE_ID est l'identifiant de votre service Stackhero.
# CERTIFICATES_PASSWORD est le mot de passe défini dans la configuration Docker sur le dashboard Stackhero.
(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")

Cette commande crée un context Docker nommé d'après le domaine de votre service. Vous pouvez voir tous les contexts disponibles avec :

docker context ls

Si vous modifiez le domaine de votre service, vos certificats seront modifiés. Vous devrez les réinstaller pour pouvoir vous reconnecter de façon sécurisée.

Par défaut, l'exécution de docker ps affiche les conteneurs présents sur votre machine locale. Par exemple, lancer :

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

affichera l'adresse IP publique de votre ordinateur, puisque le conteneur s'exécute localement.

Pour travailler à distance, basculez le context Docker vers votre instance Stackhero for Docker :

docker context use <XXXXXX>.stackhero-network.com

Désormais, chaque commande Docker CLI s'exécutera sur votre serveur Docker distant. Lancer la même commande de vérification d'IP :

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

affichera l'adresse IP publique de votre instance Stackhero for Docker. Cela confirme que vos conteneurs tournent bien sur le serveur distant.

Pour revenir à votre démon Docker local, il suffit d'exécuter :

docker context use default

Lorsque vous montez un volume dans un conteneur distant, les fichiers accessibles proviennent du serveur distant, et non de votre ordinateur local. Par exemple, docker run -it -v ${PWD}:/mnt alpine montera le répertoire distant, pas votre répertoire local actuel.

Docker Compose utilise également le context Docker actif. Une fois que vous avez positionné le context sur l'instance distante avec :

docker context use <XXXXXX>.stackhero-network.com

toutes les commandes Docker Compose que vous exécutez s'appliqueront à votre serveur distant. Cela rend le déploiement d'applications multi-conteneurs aussi simple qu'en local, mais directement sur votre environnement de production.

Changer de context avec docker context est pratique pour un usage interactif. Pour les scripts ou Makefiles, la variable d'environnement DOCKER_CONTEXT vous donne un contrôle supplémentaire. Vous trouverez plus de détails dans notre documentation avancée.

Pour approfondir l'utilisation des contexts Docker, la documentation officielle Docker sur les contexts vous apportera des informations complémentaires.