簡體   English   中英

.Net Core 5 API 項目在 docker 容器中不能與 docker 運行或 ZBAEDB53E845AE71F13945FCC000 一起工作

[英].Net Core 5 API projects in docker containers not working with docker run or docker-compose - no errors

我所看到的:

  1. In VS2019, create a new .net core 5 web API app, turn off https (just to eliminate certificate issues for testing), call it dockertest.

  2. 對應用程序不進行任何更改

  3. 從 VS 中在 docker 中運行它——一切正常。

  4. 刪除 dockertest docker 容器(不是圖像)

  5. 使用docker run -it --rm -p 7722:80 dockertest:dev -- 容器運行沒有錯誤並且日志顯示它正在監聽 80

  6. 嘗試在 http://localhost:7722/swagger/index.html 訪問應用程序 -返回錯誤無內容

我還嘗試過什么

  1. 使用以下命令手動構建映像: docker build -t dockertest:0.0.1 -f./dockertest/Dockerfile.

  2. 使用docker run -it --rm -p 7722:80 dockertest:0.0.1創建容器 - 容器運行沒有錯誤,日志顯示它正在監聽 80

  3. 嘗試通過 http://localhost:7722/swagger/index.html 訪問應用程序——返回 404 ERROR Not Found

  4. 我也嘗試在 VSCode 中創建 dockerfile - 同樣的問題

  5. 我嘗試過使用 VSCode 創建的和手動創建的 docker-compose 文件,同樣的問題。

我懷疑這是一個網絡配置錯誤,因為應用程序似乎在容器中運行良好,但是創建了端口映射,所以我現在有點卡住了。

任何指出我正在犯的愚蠢錯誤的幫助將不勝感激。

非常感謝

容器日志:

info: Microsoft.Hosting.Lifetime[0]

      Now listening on: http://[::]:80

info: Microsoft.Hosting.Lifetime[0]

      Application started. Press Ctrl+C to shut down.

info: Microsoft.Hosting.Lifetime[0]

      Hosting environment: Production

info: Microsoft.Hosting.Lifetime[0]

      Content root path: /app

集裝箱檢查:

{
    "AppArmorProfile": "",
    "Args": [
        "dockertest3.dll"
    ],
    "Config": {
        "AttachStderr": true,
        "AttachStdin": true,
        "AttachStdout": true,
        "Cmd": null,
        "Domainname": "",
        "Entrypoint": [
            "dotnet",
            "dockertest3.dll"
        ],
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "ASPNETCORE_URLS=http://+:80",
            "DOTNET_RUNNING_IN_CONTAINER=true",
            "DOTNET_VERSION=5.0.1",
            "ASPNET_VERSION=5.0.1"
        ],
        "ExposedPorts": {
            "80/tcp": {}
        },
        "Hostname": "b4f5b2dff113",
        "Image": "dockertest3:0.0.5",
        "Labels": {},
        "OnBuild": null,
        "OpenStdin": true,
        "StdinOnce": true,
        "Tty": true,
        "User": "",
        "Volumes": null,
        "WorkingDir": "/app"
    },
    "Created": "2021-01-07T09:46:30.9864781Z",
    "Driver": "overlay2",
    "ExecIDs": null,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/127d91088bf4c1723527366c1861d31374fae1d53981e40c148172d40d9a0d3d-init/diff:/var/lib/docker/overlay2/yraxw6cr3174e5trbzalykc0s/diff:/var/lib/docker/overlay2/nzvzpe3gdywqyblx27tbfklak/diff:/var/lib/docker/overlay2/z3tx67lfy5810vtmibw4aqadk/diff:/var/lib/docker/overlay2/6a8a63e392362af66acc3482f595bca36ec76462cc3172fd51eeb4dda31af427/diff:/var/lib/docker/overlay2/9fc4fe532dedaec2ccffe78163f348904ba6e5c53d0f269567dc9ae4d78def58/diff:/var/lib/docker/overlay2/41da0638d4d740b12bdb0d2d0ad4cfd2c42163b0d23e5a22b309eefbf86b68c1/diff:/var/lib/docker/overlay2/f0df011b8efda351f96981bdfa9f9fbc405132ee250a870cc2f69570792f65ff/diff:/var/lib/docker/overlay2/b3182380e8d22083de1e0b3468529a6b806f1569cf52589275c7e338ed717685/diff",
            "MergedDir": "/var/lib/docker/overlay2/127d91088bf4c1723527366c1861d31374fae1d53981e40c148172d40d9a0d3d/merged",
            "UpperDir": "/var/lib/docker/overlay2/127d91088bf4c1723527366c1861d31374fae1d53981e40c148172d40d9a0d3d/diff",
            "WorkDir": "/var/lib/docker/overlay2/127d91088bf4c1723527366c1861d31374fae1d53981e40c148172d40d9a0d3d/work"
        },
        "Name": "overlay2"
    },
    "HostConfig": {
        "AutoRemove": true,
        "Binds": null,
        "BlkioDeviceReadBps": null,
        "BlkioDeviceReadIOps": null,
        "BlkioDeviceWriteBps": null,
        "BlkioDeviceWriteIOps": null,
        "BlkioWeight": 0,
        "BlkioWeightDevice": [],
        "CapAdd": null,
        "CapDrop": null,
        "Capabilities": null,
        "Cgroup": "",
        "CgroupParent": "",
        "ConsoleSize": [
            11,
            302
        ],
        "ContainerIDFile": "",
        "CpuCount": 0,
        "CpuPercent": 0,
        "CpuPeriod": 0,
        "CpuQuota": 0,
        "CpuRealtimePeriod": 0,
        "CpuRealtimeRuntime": 0,
        "CpuShares": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "DeviceCgroupRules": null,
        "DeviceRequests": null,
        "Devices": [],
        "Dns": [],
        "DnsOptions": [],
        "DnsSearch": [],
        "ExtraHosts": null,
        "GroupAdd": null,
        "IOMaximumBandwidth": 0,
        "IOMaximumIOps": 0,
        "IpcMode": "private",
        "Isolation": "",
        "KernelMemory": 0,
        "KernelMemoryTCP": 0,
        "Links": null,
        "LogConfig": {
            "Config": {},
            "Type": "json-file"
        },
        "MaskedPaths": [
            "/proc/asound",
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug",
            "/proc/scsi",
            "/sys/firmware"
        ],
        "Memory": 0,
        "MemoryReservation": 0,
        "MemorySwap": 0,
        "MemorySwappiness": null,
        "NanoCpus": 0,
        "NetworkMode": "default",
        "OomKillDisable": false,
        "OomScoreAdj": 0,
        "PidMode": "",
        "PidsLimit": null,
        "PortBindings": {
            "80/tcp": [
                {
                    "HostIp": "",
                    "HostPort": "7722"
                }
            ]
        },
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyPaths": [
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
        ],
        "ReadonlyRootfs": false,
        "RestartPolicy": {
            "MaximumRetryCount": 0,
            "Name": "no"
        },
        "Runtime": "runc",
        "SecurityOpt": null,
        "ShmSize": 67108864,
        "UTSMode": "",
        "Ulimits": null,
        "UsernsMode": "",
        "VolumeDriver": "",
        "VolumesFrom": null
    },
    "HostnamePath": "/var/lib/docker/containers/b4f5b2dff11316e2b310430a5ac013816bd02418f17fd1d902f9f55bddbe3b9e/hostname",
    "HostsPath": "/var/lib/docker/containers/b4f5b2dff11316e2b310430a5ac013816bd02418f17fd1d902f9f55bddbe3b9e/hosts",
    "Id": "b4f5b2dff11316e2b310430a5ac013816bd02418f17fd1d902f9f55bddbe3b9e",
    "Image": "sha256:eeadaeaa27801822b44a4f8a9fc6e2696a7f7d41cdd75f95fde6ad6e9170bcaf",
    "LogPath": "/var/lib/docker/containers/b4f5b2dff11316e2b310430a5ac013816bd02418f17fd1d902f9f55bddbe3b9e/b4f5b2dff11316e2b310430a5ac013816bd02418f17fd1d902f9f55bddbe3b9e-json.log",
    "MountLabel": "",
    "Mounts": [],
    "Name": "/interesting_lumiere",
    "NetworkSettings": {
        "Bridge": "",
        "EndpointID": "ff21dbc13c19bbd2792be6f4098a477c29d9f35b16c2277f84d0dfccccddd147",
        "Gateway": "172.17.0.1",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "HairpinMode": false,
        "IPAddress": "172.17.0.5",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "MacAddress": "02:42:ac:11:00:05",
        "Networks": {
            "bridge": {
                "Aliases": null,
                "DriverOpts": null,
                "EndpointID": "ff21dbc13c19bbd2792be6f4098a477c29d9f35b16c2277f84d0dfccccddd147",
                "Gateway": "172.17.0.1",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "IPAMConfig": null,
                "IPAddress": "172.17.0.5",
                "IPPrefixLen": 16,
                "IPv6Gateway": "",
                "Links": null,
                "MacAddress": "02:42:ac:11:00:05",
                "NetworkID": "c730b712c96204bf2d888a9371b9b4a54f056e864bcce689f6b71e80a98eb83a"
            }
        },
        "Ports": {
            "80/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "7722"
                }
            ]
        },
        "SandboxID": "a4897ddfc05c6ff3083ca1ee4c2e61d56e151a4d10edeca8ae22838a43f0279d",
        "SandboxKey": "/var/run/docker/netns/a4897ddfc05c",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null
    },
    "Path": "dotnet",
    "Platform": "linux",
    "ProcessLabel": "",
    "ResolvConfPath": "/var/lib/docker/containers/b4f5b2dff11316e2b310430a5ac013816bd02418f17fd1d902f9f55bddbe3b9e/resolv.conf",
    "RestartCount": 0,
    "State": {
        "Dead": false,
        "Error": "",
        "ExitCode": 0,
        "FinishedAt": "0001-01-01T00:00:00Z",
        "OOMKilled": false,
        "Paused": false,
        "Pid": 23466,
        "Restarting": false,
        "Running": true,
        "StartedAt": "2021-01-07T09:46:31.2780767Z",
        "Status": "running"
    }
}

除此之外,我有一個部分答案。

這似乎與 VS2109 如何自定義容器以附加到調試器有很大關系。

如果我運行手動 docker 構建並添加 --no-cache 參數,則創建的 docker 容器可以正常工作,這至少是朝着正確方向邁出的一步。

現在我將假設從 VS 中創建容器對生產來說是不行的,盡管我看不出這是預期的功能。

我將 Visual Studio 用於 Docker 容器。 我發現 Visual Studio 2019 確實存在問題,因此我發現的唯一解決方案是將我的應用程序作為 vanilla Visual Studio 項目運行,並編寫 DockerCompose 腳本以與 VS 分開發布/創建圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM