Docker: Premiers pas
Comment débuter avec Stackhero pour Docker
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution Docker cloud CaaS (Containers as a Service) prête à l'emploi offrant de nombreux avantages, notamment :
- Déployez facilement vos containers en production avec un simple
docker-compose up.- Nom de domaine personnalisable sécurisé avec HTTPS (par exemple, https://api.votre-entreprise.com, https://www.votre-entreprise.com, https://backoffice.votre-entreprise.com).
- Performance optimale et sécurité robuste 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 d'hébergement cloud Docker CaaS de Stackhero et déployer vos containers en production !
Comment utiliser Docker CLI à distance
Docker CLI doit être installé sur votre ordinateur. Si vous ne l'avez pas encore installé, vous pouvez le télécharger ici : https://www.docker.com/products/docker-desktop/.
Avec Stackhero pour Docker, vous pouvez vous connecter à votre serveur Docker à distance depuis votre ordinateur comme vous le feriez en local. Cette configuration vous permet de conserver votre flux de travail habituel tout en offrant un moyen robuste de gérer vos conteneurs en production.
Pour cela, les "contexts" Docker sont utilisés. 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 pour Docker.
Installer les certificats Docker
Pour vous connecter à distance à votre instance Stackhero pour Docker, vous devrez d'abord installer ses certificats. Ces certificats garantissent une authentification et un chiffrement sécurisés entre votre ordinateur et votre instance Stackhero pour Docker.
Sur votre ordinateur, vous pouvez utiliser la commande suivante :
# HOST est le nom de domaine de votre instance Stackhero pour Docker (<XXXXXX>.stackhero-network.com).
# SERVICE_ID est votre ID de service Stackhero.
# CERTIFICATES_PASSWORD est le mot de passe défini dans votre configuration Stackhero pour 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 avez maintenant créé un context Docker nommé d'après le nom de domaine de votre service. Pour voir tous vos contexts, vous pouvez exécuter la commande docker context ls.
Si vous mettez à jour votre domaine de service, les certificats changeront 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 utilisera votre démon Docker local, affichant les conteneurs en cours d'exécution sur votre ordinateur.
Par exemple, vous pouvez exécuter cette commande pour obtenir l'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'IP de votre routeur internet en réponse.
Changeons le context Docker pour utiliser votre instance Stackhero pour Docker. Exécutez simplement la commande docker context use <XXXXXX>.stackhero-network.com. Désormais, les commandes Docker initiées sur votre ordinateur s'exécuteront en toute sécurité sur votre démon Docker distant.
Exécutez à nouveau la même commande pour récupérer l'IP publique de votre démon Docker : docker run --rm alpine wget -q -O - ifconfig.me. Vous devriez maintenant voir l'IP publique de votre instance Stackhero pour Docker, confirmant que votre conteneur s'exécute sur votre serveur et non plus sur votre ordinateur.
Pour revenir à l'utilisation de votre démon Docker local, il suffit de changer à nouveau votre context Docker en "default" : docker context use default.
Lorsque vous montez un volume sur un conteneur distant, les données accessibles seront celles sur le serveur distant et non celles sur votre ordinateur. Ainsi, exécuter une commande comme
docker run -it -v ${PWD}:/mnt alpinene montera pas le répertoire de votre ordinateur comme vous pourriez vous y attendre.
Déployer avec Docker-Compose
Comme la CLI Docker, la CLI Docker-compose utilisera votre context actuel. Par conséquent, une fois que vous avez basculé vers votre instance distante avec docker context use <XXXXXX>.stackhero-network.com, chaque commande Docker-compose s'exécutera également sur votre instance distante.
Utiliser la commande
docker contextest efficace, mais cela pourrait ne pas être la meilleure approche lors de la gestion des contexts dans vos scripts ou Makefiles. Dans ces cas, envisagez d'utiliser la variable d'environnementDOCKER_CONTEXT, qui est détaillée dans nos pages de documentation avancée.