GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment attribuer une adresse IP statique à un conteneur Docker

Les adresses IP statiques ne changent pas lorsque les conteneurs ou les services sont arrêtés et démarrés, ce qui les rend utiles pour la mise en réseau permanente. L'attribution d'adresses IP statiques aux conteneurs Docker est un moyen simple de les rendre plus accessibles.

Pourquoi utiliser une adresse IP statique ?

Il existe deux types d'"IP statiques" ; les adresses IP privées utilisées pour la mise en réseau interne à l'intérieur d'un serveur et les adresses IP publiques utilisées pour se connecter à l'extérieur du serveur, souvent via Internet.

Si vous devez configurer une adresse IP publique pour un conteneur, vous souhaiterez utiliser des liaisons de port. Vous pouvez « publier » des ports sur le conteneur Docker pour qu'ils soient accessibles depuis l'hôte. Bien qu'il existe des configurations réseau plus avancées, c'est de loin la plus simple et la plus courante. Par exemple, lier le port 80 (HTTP) sur l'hôte pour qu'il pointe vers un conteneur NGINX :

docker run --publish=80:8080 nginx

Si vous souhaitez créer une adresse IP privée statique, vous devez déterminer si vous devez en utiliser une. La plupart du temps, vous souhaiterez qu'une adresse IP statique communique avec un conteneur à partir d'un autre ou à partir de l'hôte. Dans la plupart des cas, la mise en réseau intégrée de Docker peut gérer cela.

Docker est livré avec un réseau par défaut, mais si vous créez le vôtre, vous pouvez attribuer des alias aux conteneurs lorsqu'ils sont lancés sur ce réseau. Cet alias se résoudra automatiquement à l'adresse IP privée du conteneur. Par exemple, le conteneur NGINX ici peut accéder à l'instance MongoDB avec la chaîne de connexion mongodb://mongohost:27017 .

docker network create example
docker run --net example --name nginx -d nginx
docker network connect example --alias mongohost mongodb

Pour en savoir plus, vous pouvez lire la documentation de Docker sur les réseaux de ponts définis par l'utilisateur.

Cependant, il y a encore de nombreuses fois où vous voudrez spécifier manuellement une adresse IP privée, comme accéder aux conteneurs directement depuis l'hôte. Vous devrez toujours utiliser un réseau Docker personnalisé pour ce faire, mais il est facile à configurer.

Configurer des adresses IP statiques

Tout d'abord, vous devrez configurer un réseau Docker, et puisque nous nous soucions de l'adresse IP, vous devrez spécifier un sous-réseau fixe :

docker network create --subnet=172.20.0.0/16 customnetwork

CONNEXE : Que sont les sous-réseaux et comment affectent-ils mon réseau ?

Ensuite, vous pouvez exécuter un conteneur, en spécifiant le réseau avec le --net drapeau, et en spécifiant l'IP avec le -ip drapeau :

docker run --net customnetwork --ip 172.20.0.10 -d container

Vous pouvez vérifier que l'adresse est correcte en la vérifiant dans le conteneur avec exec -t bin/bash , ou en inspectant la liste des conteneurs Docker :

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' name_or_id

Utiliser Docker Compose

Docker Compose est un outil utilisé pour lancer plusieurs conteneurs avec des paramètres prédéfinis. Cela inclut la configuration de réseaux avec des sous-réseaux spécifiques, et vous pouvez attacher des conteneurs à des réseaux avec des adresses IP fixes à l'aide de l'ipv4_address bloc de configuration affiché ici :

version: '2'
services:
  webserver:
    image: nginx
    container_name: web-server
    networks:
      customnetwork:
        ipv4_address: 172.20.0.10
networks:
  customnetwork:
    ipam:
      config:
        - subnet: 172.20.0.0/16

Docker
  1. Comment installer WordPress avec Docker

  2. Comment exécuter un programme dans un conteneur Docker ?

  3. Comment exécuter MySQL dans un conteneur Docker

  4. Comment se connecter en SSH à un conteneur Docker

  5. Comment installer Vim dans un conteneur Docker

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment ajouter un volume à un conteneur Docker existant

Comment configurer Pihole dans un conteneur Docker

Comment configurer un conteneur Apache Docker

Comment exécuter des conteneurs Docker