Een statisch IP-adres toewijzen aan een Docker-container

0
264

Statische IP-adressen veranderen niet wanneer containers of services worden gestopt en begonnen, waardoor ze nuttig waren voor permanent netwerken. Het toewijzen van statische IP-adressen aan Docker-containers is een gemakkelijke manier om ze toegankelijker te maken.

Waarom een ​​statisch IP-adres gebruiken?

Er zijn twee soorten “statische IP”; privé IP-adressen die worden gebruikt voor interne netwerken binnen een server, en openbare IP-adressen die worden gebruikt om verbinding te maken buiten de server, vaak via internet.

Als u een openbaar IP-adres voor een container moet instellen, wilt u poortbindingen gebruiken. U kunt “publiceren” poorten op de Docker-container toegankelijk zijn vanaf de host. Hoewel er meer geavanceerde netwerkconfiguraties zijn, is dit verreweg de gemakkelijkste en meest voorkomende. Bijvoorbeeld, poort 80 (HTTP) op de host binden om naar een NGINX-container te verwijzen:

docker run –publish=80:8080 nginx

Als u een statisch privé-IP-adres wilt maken, moet u overwegen als je er al een nodig hebt. Meestal wilt u dat een statisch IP-adres met de ene container van een andere of van de host communiceert. In de meeste gevallen kan het ingebouwde netwerk van Docker dit aan.

Docker wordt geleverd met een standaardnetwerk, maar als u er zelf een maakt, kunt u containersaliassen geven wanneer ze in dat netwerk worden gestart. Deze alias wordt automatisch omgezet naar het privé-IP van de container. De NGINX-container hier heeft bijvoorbeeld toegang tot de MongoDB-instantie met de verbindingsreeks mongodb://mongohost:27017.

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

Voor meer informatie kunt u de documentatie van Docker over door de gebruiker gedefinieerde bridge-netwerken lezen.

Er zijn echter nog steeds genoeg momenten waarop u handmatig een privé-IP-adres wilt opgeven, zoals rechtstreeks toegang tot containers vanaf de host. U moet hiervoor nog steeds een aangepast Docker-netwerk gebruiken, maar het is eenvoudig in te stellen.

Static instellen IP's

Eerst moet u een Docker-netwerk opzetten en aangezien het IP-adres belangrijk is, moet u een vast subnet specificeren:

docker-netwerk create –subnet=172.20.0.0/16 aangepast netwerk

GERELATEERD: Wat zijn subnetten en hoe beïnvloeden ze mijn netwerk?

Vervolgens kun je een container uitvoeren, waarbij je het netwerk specificeert met de –net vlag, en het IP opgeven met de vlag -ip:

docker run –net customnetwork –ip 172.20.0.10 -d container

U kunt controleren of het adres correct is door het in de container te controleren met exec -t bin/bash, of door de Docker-containerlijst te inspecteren:

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

Docker Compose gebruiken

Docker Compose is een tool die wordt gebruikt om meerdere containers met vooraf gedefinieerde instellingen te starten. Dit omvat het opzetten van netwerken met specifieke subnetten, en u kunt containers koppelen aan netwerken met vaste IP's met behulp van het ipv4_address config-blok dat hier wordt weergegeven:

version: '2' services: webserver: image: nginx container_name: webserver networks: customnetwork: ipv4_address: 172.20.0.10 netwerken: customnetwork: ipam: config: – subnet: 172.20.0.0/16