Installiert man Sametime Meetings 11.x unter Docker auf einem Docker Host mit 2 oder mehr IP-Adressen - also einem "multi-homed server", ist der NGINX-Container etwas gierig und bindet seine Ports (80/tcp und 443/tcp) an alle IP-Adressen:
netstat -tlpan
Aktive Internetverbindungen (Server und stehende Verbindungen)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 21733/docker-proxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21789/docker-proxy
...
Das kann so in Ordnung sein, muss es aber nicht. Möchte man auf dem gleichen Server nämlich die zweite (oder eine weitere) IP-Adresse für einen anderen HTTP(S)-Dienst nutzen, muss man Docker überzeugen, sich auf eine IP-Adresse zu beschränken.
Dazu könnte man in der docker-compose.yml
folgende Änderung vornehmen (sei 111.111.111.111
die IP-Adresse, auf der der Meetings-Server lauschen soll):
nginx:
image: sametime-docker-prod.artifactory.cwp.pnp-hcl.com/meetings-web:${BUILD_LEVEL}
restart: ${RESTART_POLICY}
ports:
- '111.111.111.111:${HTTP_PORT}:80'
- '111.111.111.111:${HTTPS_PORT}:443'
Aus meiner Sicht etwas eleganter ist aber die Anpassung der Konfigurationsdatei .env
:
# Exposed HTTP port.
#HTTP_PORT=80
HTTP_PORT=111.111.111.111:80
# Exposed HTTPS port.
#HTTPS_PORT=443
HTTPS_PORT=111.111.111.111:443
Nach dem allfälligen docker-compose down
und docker-compose up -d
sieht es dann besser aus:
netstat -tlpan
Aktive Internetverbindungen (Server und stehende Verbindungen)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 111.111.111.111:443 0.0.0.0:* LISTEN 21733/docker-proxy
tcp 0 0 111.111.111.111:80 0.0.0.0:* LISTEN 21789/docker-proxy
...
Wenn und falls man den JVB_TCP_PORT
definiert hat, damit die Jitsi Video Bridge alternativ (oder ausschließlich) über TCP laufen kann, geht es hier leider nicht über die .env
-Datei, da in der docker-compose.yml
der Port leider doppelt verwendet wird:
jvb:
image: sametime-docker-prod.artifactory.cwp.pnp-hcl.com/meetings-jvb:${BUILD_LEVEL}
restart: ${RESTART_POLICY}
ports:
- '${JVB_PORT}:${JVB_PORT}/udp'
- '${JVB_TCP_PORT}:${JVB_TCP_PORT}'
Hier müsste man dann direkt in der docker-compose.yml
Hand anlegen.
Andererseits: Wenn man hier einen Nicht-Standard-Port wie 4443 definiert, stört es im Allgemeinen auch nicht, wenn sich der Container an 0.0.0.0, also alle vorhandenen Schnittstellen bindet.