【发布时间】:2020-06-10 14:20:03
【问题描述】:
我正在尝试完成一个基本的 Docker 任务,dockerize 并在本地运行一个 .Net Core 3.0 网络,但没有成功。
我使用以下 Dockerfile 和下一个命令创建我的项目映像:
docker build --tag webtarjetasparquimetros:1.0 .
Dockerfile(由 Visual Studio 创建):
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["BSM_WebTarjetasParquimetros/BSM_WebTarjetasParquimetros.csproj", "BSM_WebTarjetasParquimetros/"]
RUN dotnet restore "BSM_WebTarjetasParquimetros/BSM_WebTarjetasParquimetros.csproj"
COPY . .
WORKDIR "/src/BSM_WebTarjetasParquimetros"
RUN dotnet build "BSM_WebTarjetasParquimetros.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "BSM_WebTarjetasParquimetros.csproj" -c Release -o /app/publish
FROM base AS final
EXPOSE 5000
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "BSM_WebTarjetasParquimetros.dll"]
4) 我使用以下命令运行我的图像:
docker run -it -p 8000:8080 --name wtp webtarjetasparquimetros:1.0
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
No XML encryptor configured. Key {74d2f1a2-fcb8-423c-8f34-a1f178e87ae5} may be persisted to storage in unencrypted form.
Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down.
5) 我正在尝试在 Chrome 中使用下一个 url 测试我的 dockerized web:
http://localhost:8000/Account/Login
无济于事。无论我尝试使用 url,当 docker run 命令执行没有错误时,我的 web 都不会启动。
docker ps 输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b7a3b752c08 webtarjetasparquimetros:1.0 "dotnet BSM_WebTarje…" 4 seconds ago Up 3 seconds 80/tcp, 5000/tcp, 0.0.0.0:8000->8080/tcp wtp
我也尝试过http://192.168.99.100:8000/Account/Login,但它也不起作用。
Docker 检查:
[
{
"Id": "5b7a3b752c084890ab506771edf135f6dc6a9dad5fc8bdc8c3c17b8c4bf70319",
"Created": "2020-06-10T14:12:28.74037522Z",
"Path": "dotnet",
"Args": [
"BSM_WebTarjetasParquimetros.dll"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 11373,
"ExitCode": 0,
"Error": "",
"StartedAt": "2020-06-10T14:12:28.993259128Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:26d99146db641f4df0fef61b7fafc45a3ccdefa7cfdd55e8c07bf7473babaae6",
"ResolvConfPath": "/var/lib/docker/containers/5b7a3b752c084890ab506771edf135f6dc6a9dad5fc8bdc8c3c17b8c4bf70319/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/5b7a3b752c084890ab506771edf135f6dc6a9dad5fc8bdc8c3c17b8c4bf70319/hostname",
"HostsPath": "/var/lib/docker/containers/5b7a3b752c084890ab506771edf135f6dc6a9dad5fc8bdc8c3c17b8c4bf70319/hosts",
"LogPath": "/var/lib/docker/containers/5b7a3b752c084890ab506771edf135f6dc6a9dad5fc8bdc8c3c17b8c4bf70319/5b7a3b752c084890ab506771edf135f6dc6a9dad5fc8bdc8c3c17b8c4bf70319-json.log",
"Name": "/wtp",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {
"8080/tcp": [
{
"HostIp": "",
"HostPort": "8000"
}
]
},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"Capabilities": null,
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
39,
198
],
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"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"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/ef784a31d422124b737b9aa5a335f29f343641ccfe716a330e8b5ab90fa22f05-init/diff:/var/lib/docker/overlay2/dbdd7c7c0923c57ca4e39be9ab73dc7d80f2def3dfb2054ff3a96eac812116ec/diff:/var/lib/docker/overlay2/8bc8ffba35e354bc92fc0cd1bee606833fea9708db10be73c5e22663ce156585/diff:/var/lib/docker/overlay2/0226a1a2fe99bc94d20673c4e2ed515d9b53c4047f7d8c9705f4a56e4064871b/diff:/var/lib/docker/overlay2/3f5fbe554097033b44ed5131d77aeb09bfbb83f2ed1de9a82e7dbe93418607fd/diff:/var/lib/docker/overlay2/6015c14aab18942ecafe0f45111229815bb69acad9ffeaf5a6de2c8ad470a864/diff:/var/lib/docker/overlay2/30f5bd570bbc6c8db37fbb176757c95978084f769a341552ac115153fa46f17a/diff:/var/lib/docker/overlay2/337f954b5edec99af3f9d57321967e2345719853d96d788ff989e68a00184d07/diff",
"MergedDir": "/var/lib/docker/overlay2/ef784a31d422124b737b9aa5a335f29f343641ccfe716a330e8b5ab90fa22f05/merged",
"UpperDir": "/var/lib/docker/overlay2/ef784a31d422124b737b9aa5a335f29f343641ccfe716a330e8b5ab90fa22f05/diff",
"WorkDir": "/var/lib/docker/overlay2/ef784a31d422124b737b9aa5a335f29f343641ccfe716a330e8b5ab90fa22f05/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "5b7a3b752c08",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"5000/tcp": {},
"80/tcp": {},
"8080/tcp": {}
},
"Tty": true,
"OpenStdin": true,
"StdinOnce": false,
"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=3.0.3",
"ASPNETCORE_VERSION=3.0.3"
],
"Cmd": null,
"Image": "webtarjetasparquimetros:1.0",
"Volumes": null,
"WorkingDir": "/app",
"Entrypoint": [
"dotnet",
"BSM_WebTarjetasParquimetros.dll"
],
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "7ea0d57d94f8d1bacca026b2f03b3c3a34fceaaff04408546ca62ae307721a6a",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"5000/tcp": null,
"80/tcp": null,
"8080/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "8000"
}
]
},
"SandboxKey": "/var/run/docker/netns/7ea0d57d94f8",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "7fbbf7764d3ee9efa052bfe069493a0b14eb3ca1ff3d832117a35f9ee6f810b9",
"Gateway": "192.168.1.5",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "192.168.1.1",
"IPPrefixLen": 24,
"IPv6Gateway": "",
"MacAddress": "02:42:c0:a8:01:01",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "ea46d95d34d16b264e32dae4f1815a06b1eed42a2b9ac4ef7ed8a2dd35dfa29c",
"EndpointID": "7fbbf7764d3ee9efa052bfe069493a0b14eb3ca1ff3d832117a35f9ee6f810b9",
"Gateway": "192.168.1.5",
"IPAddress": "192.168.1.1",
"IPPrefixLen": 24,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:c0:a8:01:01",
"DriverOpts": null
}
}
}
}
]
【问题讨论】:
标签: c# docker .net-core dockerfile