Docker: Premiers pas
Comment débuter avec Stackhero for Docker
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution Docker cloud CaaS (Containers as a Service) prête à l'emploi qui offre de nombreux avantages, notamment :
- Déployez facilement vos conteneurs en production avec un simple
docker-compose up.- Nom de domaine personnalisable sécurisé en HTTPS (par exemple, https://api.votre-entreprise.com, https://www.votre-entreprise.com, https://backoffice.votre-entreprise.com).
- Performance optimale et sécurité renforcée grâce à une VM privée et dédiée.
- Mises à jour simplifiées en un clic.
Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Docker CaaS cloud hosting de Stackhero et déployer vos conteneurs en production !
Comment utiliser Docker CLI à distance
Docker CLI doit être installé sur votre ordinateur. Si ce n'est pas déjà fait, vous pouvez le télécharger ici : https://www.docker.com/products/docker-desktop/.
Avec Stackhero for Docker, vous pouvez vous connecter à votre serveur Docker à distance depuis votre ordinateur, exactement comme si vous travailliez en local. Cette configuration vous permet de conserver votre flux de travail habituel tout en offrant une solution robuste pour gérer vos conteneurs en production.
Pour cela, Docker utilise les "contexts". Les contexts Docker vous permettent d'utiliser la CLI Docker sur votre ordinateur et de spécifier où les commandes doivent s'exécuter : sur votre démon Docker local (comme d'habitude) ou sur votre instance Stackhero for Docker.
Installer les certificats Docker
Pour vous connecter à distance à votre instance Stackhero for Docker, vous devez d'abord installer ses certificats. Ces certificats garantissent une authentification et un chiffrement sécurisés entre votre ordinateur et votre instance Stackhero for Docker.
Sur votre ordinateur, vous pouvez utiliser la commande suivante :
# HOST correspond au nom de domaine de votre instance Stackhero for 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 de votre Stackhero for Docker.
(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")
Vous venez de créer un context Docker nommé d'après le nom de domaine de votre service. Pour afficher tous vos contexts, vous pouvez exécuter la commande docker context ls.
Si vous modifiez le domaine de votre service, les certificats seront renouvelés et vous devrez les réinstaller.
Exécuter des conteneurs Docker à distance
Actuellement, si vous listez vos conteneurs avec la commande docker ps, votre CLI Docker utilise votre démon Docker local et affiche les conteneurs qui tournent sur votre ordinateur.
Par exemple, vous pouvez exécuter cette commande pour obtenir l'adresse IP publique de votre démon Docker : docker run --rm alpine wget -q -O - ifconfig.me. Comme le conteneur s'exécute sur votre ordinateur, vous verrez l'adresse IP de votre routeur internet en réponse.
Changeons maintenant le context Docker pour utiliser votre instance Stackhero for Docker. Il suffit d'exécuter la commande docker context use <XXXXXX>.stackhero-network.com. Désormais, les commandes Docker lancées depuis votre ordinateur s'exécuteront en toute sécurité sur votre démon Docker distant.
Relancez la même commande pour récupérer l'adresse IP publique de votre démon Docker : docker run --rm alpine wget -q -O - ifconfig.me. Vous devriez maintenant voir l'adresse IP publique de votre instance Stackhero for Docker, ce qui confirme que votre conteneur tourne bien sur votre serveur et non plus sur votre ordinateur.
Pour revenir à l'utilisation de votre démon Docker local, repassez simplement le context Docker sur "default" : docker context use default.
Lorsque vous montez un volume sur un conteneur distant, les données accessibles seront celles du serveur distant et non celles de votre ordinateur. Ainsi, lancer une commande comme
docker run -it -v ${PWD}:/mnt alpinene montera pas le dossier de votre ordinateur comme vous pourriez l'attendre.
Déployer avec Docker-Compose
Comme pour la CLI Docker, la CLI Docker-compose utilisera votre context courant. Ainsi, une fois que vous avez basculé sur votre instance distante avec docker context use <XXXXXX>.stackhero-network.com, toutes les commandes Docker-compose s'exécuteront également sur votre instance distante.
Utiliser la commande
docker contextest efficace, mais ce n'est pas toujours la meilleure approche pour gérer les contexts dans vos scripts ou Makefiles. Dans ces cas-là, pensez à utiliser la variable d'environnementDOCKER_CONTEXT, qui est détaillée dans nos pages de documentation avancée.