【问题标题】:Visual Studio 2019 Docker - Manually created .net core 3.1 containers not opening in browserVisual Studio 2019 Docker - 手动创建的 .net core 3.1 容器未在浏览器中打开
【发布时间】:2019-12-13 02:49:00
【问题描述】:

我有以下 2 个本地 linux docker 容器正在运行,其中包含 .net core 3.1 web api,所有属性如下所示。

CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                   NAMES
07b119884a5a        servicetwo:dev      "tail -f /dev/null"   4 minutes ago       Up 4 minutes        0.0.0.0:32770->80/tcp   ServiceTwo_1
e54497742108        servicetwo:dev      "tail -f /dev/null"   16 minutes ago      Up 16 minutes       0.0.0.0:32769->80/tcp   ServiceTwo

Container ServiceTwo_1 已由 Visual Studio 在单击其中的 docker 调试按钮时创建。这可以通过http://localhost:32770/api/weatherforecast/weather在浏览器中加载。

但容器“ServiceTwo”是使用 Visual Studio 使用的相同命令手动创建的,如下所示。

docker run -dt -v "C:\Users\jaish\vsdbg\vs2017u5:/remote_debugger:rw" -v "C:\Users\jaish\source\repos\ServiceTwo\ServiceTwo:/app" -v "C:\Users\jaish\source\repos\ServiceTwo:/src" -v "C:\Users\jaish\.nuget\packages\:/root/.nuget/fallbackpackages2" -v "C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_ENVIRONMENT=Development" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages2" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages;/root/.nuget/fallbackpackages2" -P --name ServiceTwo --entrypoint tail servicetwo:dev -f /dev/null 

但该容器无法使用其端口(即http://localhost:32769/api/weatherforecast/weather)在浏览器中加载

我是否错过了手动过程中的任何步骤?

【问题讨论】:

    标签: docker visual-studio-2019 asp.net-core-3.1


    【解决方案1】:

    看起来你的端口映射可能是个问题

    0.0.0.0:32770->80/tcp   ServiceTwo_1
    0.0.0.0:32769->80/tcp   ServiceTwo
    

    检查运行这些查询后得到的结果

    $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
    b650456536c7        busybox:latest      top                 54 minutes ago      Up 54 minutes       0.0.0.0:1234->9876/tcp, 0.0.0.0:4321->7890/tcp   test
    $ docker port test
    7890/tcp -> 0.0.0.0:4321
    9876/tcp -> 0.0.0.0:1234
    $ docker port test 7890/tcp
    0.0.0.0:4321
    $ docker port test 7890/udp
    2014/06/24 11:53:36 Error: No public port '7890/udp' published for test
    $ docker port test 7890
    0.0.0.0:4321
    

    参考:https://docs.docker.com/engine/reference/commandline/port/

    【讨论】:

    • 查询按预期返回 iePS C:\WINDOWS\system32> docker port ServiceTwo_1 80/tcp -> 0.0.0.0:32771 PS C:\WINDOWS\system32> docker port ServiceTwo 80/tcp - > 0.0.0.0:32769 PS C:\WINDOWS\system32> 码头端口 ServiceTwo_1 80/tcp 0.0.0.0:32771 PS C:\WINDOWS\system32> 码头端口 ServiceTwo 80/tcp 0.0.0.0:32769。但是我注意到另外一件事是由 Visual Studio 创建的容器,即 ServiceTwo_1,直到您使用 VS 启动 docker 调试会话时才会加载到浏览器中。那么在 VS docker debug 期间是否有任何额外的加载?
    猜你喜欢
    • 2021-12-28
    • 2020-04-21
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2020-10-10
    • 2021-11-19
    相关资源
    最近更新 更多