Docker ip til Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg undersøger Docker med et grundlæggende. NET-kerneprojekt. Jeg bygger og billede fra denne dockerfil:


FROM microsoft/dotnet:latest

COPY . /app

WORKDIR /app/API

RUN ["dotnet", "restore"]

RUN ["dotnet", "build"]

EXPOSE 5000/tcp

CMD ["dotnet", "run", "--server.urls", "http://*:5000"]


Jeg kører det og det går fejlfrit. Nu er det eneste problem, på hvilken IP kører det?


Jeg kører Docker på Windows!


Hilsen

Bedste reference


Du udsætter allerede porten internt, så det eneste andet, jeg kan foreslå, er at kontrollere, at du åbner havnen, når du også starter dit billede:


docker run -it -p 5000:5000 <imagename>


Dette åbner port 5000 inde i eksemplet til port 5000 på din lokale maskine, og skal derefter være tilgængelig på 127.0.0.1:5000 eller localhost:5000.


Du skal også sikre dig, at du accepterer et værtsnavn inden for Main() i Program.cs med .UseUrls("http://*:5000/") på din WebHostBuilder.

Andre referencer 1


Jeg havde nogle problemer med at køre linux containere bygget til dotnet asp.net core 2 på docker til windows.


Kommandoen jeg brugte til at køre min container var:


docker run -it --rm -p 3394:3394 --name <name> <container>


Jeg kunne shell til beholderen og kontrollere, at appen lyttede og returnerede resultater.


Men forsøger at få adgang til appen fra min maskine på port 3394 ville det ikke fungere for 127.0.0.1, localhost eller min maskine s NAT ip på netværket.


Hvis du kører denne kommando, vises den IP-adresse, der er tildelt af dockerværten:


docker inspect -f "{{ .NetworkSettings.IPAddress }}" <name>


I mit tilfælde var IP'en 172.17.0.2. Men adgang til 172.17.0.2:3394 fungerede stadig ikke.


Det sidste nødvendige stykke var at køre følgende i en forhøjet doseprompt:


route /P add 172.0.0.0 MASK 255.0.0.0 10.0.75.2


Dette tilføjede en rute, så min maskine søgte ikke adressen via mit WAN, som blev diagnosticeret via tracert.


Kredit går til https://github.com/docker/for-win/issues/221[17]