Docker: Premiers pas

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

Bienvenue sur la documentation de Stackhero

Stackhero propose 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 une simple commande docker-compose up. Aucune configuration supplémentaire n'est nécessaire : lancez simplement vos containers.
  • Choisissez votre propre nom de domaine, automatiquement sécurisé en HTTPS (par exemple : https://api.votre-entreprise.com, https://www.votre-entreprise.com ou https://backoffice.votre-entreprise.com).
  • Profitez de hautes performances et d'une sécurité renforcée sur une infrastructure privée et dédiée.
  • Appliquez les mises à jour en un clic pour une maintenance simple et sans effort.

Vos containers peuvent être en production en environ cinq minutes. Stackhero gère pour vous l'infrastructure, les mises à jour et la sécurité, afin que vous puissiez vous concentrer sur le développement de vos applications. Découvrez-en 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 pour Docker, vous pouvez gérer vos conteneurs à distance avec Docker CLI, exactement comme en local. Vous conservez ainsi vos habitudes, tout en exécutant 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 permettent d'indiquer à Docker CLI où envoyer vos commandes : vers votre démon Docker local ou vers votre instance Stackhero pour Docker. Le changement de context est rapide et transparent.

Pour vous connecter en toute sécurité à votre instance Stackhero pour Docker, vous devez installer ses certificats sur votre ordinateur. Ces certificats assurent l'authentification et le chiffrement, garantissant la confidentialité et la sécurité de votre connexion.

Vous pouvez utiliser la commande suivante pour télécharger et installer 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 tableau de bord 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 afficher tous les contexts disponibles avec :

docker context ls

Si vous modifiez le domaine de votre service, vos certificats seront renouvelés. Vous devrez les réinstaller pour vous reconnecter en toute sécurité.

Par défaut, la commande docker ps affiche les conteneurs de votre machine locale. Par exemple, l'exécution de :

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

affiche l'IP publique de votre ordinateur, car le conteneur s'exécute localement.

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

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

Désormais, chaque commande Docker CLI s'exécute 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'IP publique de votre instance Stackhero pour 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. 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 le context positionné sur l'instance distante avec :

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

toutes les commandes Docker Compose que vous lancez s'exécutent sur votre serveur distant. Vous pouvez ainsi déployer des applications multi-conteneurs aussi simplement 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 offre 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.