Basis van cloud en containers
$ docker run -d -p 8080:80 nginxMet de bovenstaande opdracht wordt een container gestart uit het image nginx, een webserver die op poort 80 luistert. Het IP-adres van de host is 192.0.2.10, en er zijn geen beperkingen zoals een firewall. Welke URL is juist om deze webserver te bereiken vanuit een browser op een andere pc in hetzelfde netwerk?
- Ahttp://192.0.2.10:80/
- Bhttp://(IP-adres van de container):8080/
- Chttp://192.0.2.10:8080/
Antwoord en toelichting tonen
Antwoord: C. http://192.0.2.10:8080/
De optie wordt geschreven als -p hostpoort:containerpoort; -p 8080:80 stuurt verkeer dat op poort 8080 van de host binnenkomt, dus door naar poort 80 in de container. Vanaf een andere pc maakt men verbinding met poort 8080 op het IP-adres van de host. Het IP-adres van de container hoort doorgaans bij een virtueel netwerk binnen de host en is vanaf andere pc's niet rechtstreeks bereikbaar. EXPOSE 80 in een Dockerfile legt alleen vast welke poort de container gebruikt; het publiceert zelf geen poort op de host, dus -p is nodig.