
Dans ce tutoriel, nous allons voir comment configurer l’accès distant au daemon Docker en utilisant le port 2376, qui va vous permettre de gérer vos conteneurs à distance ou encore des les superviser.
Il existe deux ports pour permettre l’accès distant :
- 2375 qui n’est pas sécurisé que cela soit au niveau des flux ou encore de l’accès
- 2376 qui est sécurisé en utilisant TLS et qui utilise un jeu de certificat pour sécurisé l’accès
Dans les deux cas, il n’y a pas d’authentification par utilisation d’un compte et d’un mot de passe, seule l’utilisation du port 2376 permet de sécurisé l’accès en utilisant un jeu de certificat.
Ayant pas mal de manipulation à faire, j’ai écris deux scripts qui va permettre de réaliser les actions facilement.
La première étape va être de générer les certificats pour la connexion TLS entre le serveur Docker et le client que vous souhaitez connecter.
Dans un dossier créé un fichier openssl.cnf dont voici le contenu :
Modifier les lignes 15 et 16 pour les faire correspondre à votre serveur Docker.
Maintenant dans le même dossier que où vous avez créé le fichier openssl.cnf créer le fichier generate-certificate.sh.
Exécuter le script :
sudo bash generate-certificate.sh
Les certificats sont maintenant générés, on va passer à la configuration de daemon Docker.
Pour cela, il va falloir éditer ou créer le fichier daemon.json que doit se trouver dans le dossier /etc/docker/.
sudo nano /etc/docker/daemon.jsonDans le fichier ajouter le contenu suivant :
Ici on configure Docker pour écouter sur le port 2376 et on lui indique l’emplacement des certificats.
Pour finir, nous devons modifier les paramètres de démarrage du service Docker, pour cela nous allons utiliser un override.conf afin de modifier la configuration. Là aussi pour simplifier la configuration voici le script :
Exécuter le script qui va créer le fichier
override.confpour le service Docker et recharger les daemon et redémarrer Docker.
sudo bash docker-tls-override.sh
La configuration Docker est terminé.
En fonction des clients que vous allez utiliser, vous allez devoir récupérer les certificats clients dans /etc/docker/certs/client.
Vous pouvez retrouver les fichiers ici : https://git.rdr-it.com/root/docker-tls-config/
