Dans ce court article, nous allons voir comment utiliser plusieurs adresses IPs pour nos containers Docker afin qu’ils écoutent sur différentes interfaces et permettre d’héberger plusieurs services avec différents nom de domaines.
La plupart des Cloud-providers vous permettent d’ajouter un adresse IP à votre serveur (en plus de celle de base). Je vous laisser chercher comment faire, chez Vultr et OVH, c’est très simple.
Une fois que votre IP additionnel vous à était attribuée (par exemple 45.98.182.2 avec un netmask à 255.255.255.0) on peut l’ajouter sur une interface virtuel nommée dummy0 dans le fichier /etc/network/interfaces :
auto dummy0 iface dummy0 inet static address 45.98.182.2 netmask 255.255.255.0
Il faut aussi ajouter le support de dummy dans /etc/modules :
echo "dummy" >> /etc/modules depmod -a
Il suffit ensuite de monter notre dummy0 avec :
ifup dummy0
Maintenant que notre serveur possède deux interfaces avec un IP publique, on peut héberger nos containers sur des adresses IPs séparées.
On peut par exemple lancer un container nginx sur notre nouvelle interface avec cette commande :
docker run -d -p 45.98.182.2:80:80 nginx
Vous pouvez ensuite essayer de lancer le même container sur votre première IP publique, vous pouvez donc héberger deux containers différents sur le port 80.
Dans un fichier docker-compose.yml, vous pouvez utiliser la même technique :
blog_web: image: nginx restart: always ports: - 45.98.182.2:80:80
Grâce à cette manipulation, vous pouvez facilement héberger des applications Web en HTTPS avec des domaines ou sous-domaines différents. Pour ma part, j’ai pu avec ça installer Owncloud et Gogs (Gitlab-like) sur le même serveur grâce à Docker-compose.
Be First to Comment