Grundlagen von Cloud und Containern
$ docker run -d -p 8080:80 nginxAus dem Image nginx, einem Webserver, der auf Port 80 lauscht, wird mit dem obigen Befehl ein Container gestartet. Die IP-Adresse des Hosts sei 192.0.2.10, und es gebe keine Einschränkungen etwa durch eine Firewall. Mit welcher URL erreicht man diesen Webserver vom Browser eines anderen PCs im selben Netzwerk?
- Ahttp://192.0.2.10:80/
- Bhttp://(IP-Adresse des Containers):8080/
- Chttp://192.0.2.10:8080/
Antwort und Erläuterung anzeigen
Antwort: C. http://192.0.2.10:8080/
Die Option wird als -p Host-Port:Container-Port geschrieben; -p 8080:80 leitet also den Verkehr, der am Port 8080 des Hosts ankommt, an Port 80 des Containers weiter. Von einem anderen PC aus verbindet man sich mit Port 8080 der IP-Adresse des Hosts. Die IP-Adresse des Containers gehört im Allgemeinen zu einem virtuellen Netzwerk innerhalb des Hosts und ist von anderen PCs aus nicht direkt erreichbar. EXPOSE 80 im Dockerfile vermerkt nur, welchen Port der Container nutzt; es veröffentlicht für sich allein keinen Port des Hosts, daher ist -p nötig.
Weiter: 9 weitere Fragen zu Grundlagen von Cloud und Containern