0 Pluspunkte 0 Minuspunkte
Kann ich einen Docker Container eine eigene IP Adresse im Host Netzwerk geben so das man 2 Container wie 2 VMs im Bridge Modus aus dem LAN auf dem selben Port erreichen kann? Also z.B 2 Webserver auf Port 80 und 443.
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Wenn du den Container startest kannst du das Port-Mapping angeben. Aber auch eine IP. Angenommen am Interface eht0 hast du die IP 192.168.0.2. Unter Linux kannst du auf dem Interface mit

ip addr add <ip-address>/<netmask> dev <interface>

mehrere IPs einrichten. Du könntest also für die 2 Webserver 2 IPs anlegen und die Container dann durch zusätzliche Angabe der IP vor dem Portmapping an diese IPs binden. Statt

-p <host-port>:<container-port>

kannst du also

-p <ip-address>:<host-port>:<container-port>

angeben.

docker run -dit --name web1 -p 192.168.0.3:80:80 apache2 /bin/bash
docker run -dit --name web2 -p 192.168.0.4:80:80 apache2 /bin/bash

Somit sind beide Container im LAN unter einer eigenen IP erreichbar.

von  
Mit dem Parameter --ip kannst du ihn auch einfach auf allen Ports lauschen lassen.

docker run -dit --name web1 --ip 192.168.0.3 apache2 /bin/bash