我有
- 分叉了planetaryDocs项目(一个示例服务器常驻Blazor Web 应用程序),
- 使用 Visual Studio 2022 创建 docker 容器
- 运行那个 docker 容器(通过 Visual Studio)和
并且 Visual Studio 会弹出一个指向 Web 服务器的浏览器,它似乎作业正常。
当我这样做时,docker image ls
我看到了planetarydocs 影像。
我想试验 docker run 命令列。我怎么做?我停止了 Visual Studio docker 容器并
docker.exe run planetarydocs -p 9090:80
这不起作用。
我将浏览器指向 http://localhost:9090,浏览器显示“无法访问此页面”。
我究竟做错了什么?
谢谢!
这是使用上述 docker 命令显示的内容:
{"EventId":35,"LogLevel":"Warning","Category":"Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager","Message":"No XML encryptor configured. Key {3df3c08f-884d-49fe-a4f8-163ea6058090} may be persisted to storage in unencrypted form.","State":{"Message":"No XML encryptor configured. Key {3df3c08f-884d-49fe-a4f8-163ea6058090} may be persisted to storage in unencrypted form.","KeyId":"3df3c08f-884d-49fe-a4f8-163ea6058090","{OriginalFormat}":"No XML encryptor configured. Key {KeyId:B} may be persisted to storage in unencrypted form."}}
{"EventId":14,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Now listening on: http://[::]:80","State":{"Message":"Now listening on: http://[::]:80","address":"http://[::]:80","{OriginalFormat}":"Now listening on: {address}"}}
{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Application started. Press Ctrl\u002BC to shut down.","State":{"Message":"Application started. Press Ctrl\u002BC to shut down.","{OriginalFormat}":"Application started. Press Ctrl\u002BC to shut down."}}
{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Hosting environment: Production","State":{"Message":"Hosting environment: Production","envName":"Production","{OriginalFormat}":"Hosting environment: {envName}"}}
{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Content root path: /app","State":{"Message":"Content root path: /app","contentRoot":"/app","{OriginalFormat}":"Content root path: {contentRoot}"}}
2021 年 12 月 31 日星期五更新
好吧,我很尴尬:这行得通!
docker.exe run -p 9090:80 planetarydocs
如果docker run
给我一个提示,我的开关订购错误,那就太好了……
有人可以指出我在launchsettings.json中描述docker的这种有趣语法的档案吗?
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"publishAllPorts": true,
"useSSL": true
}
我一直在查看 appsettings.json 和 launchsettings.json 认为 docker 的埠应该在那里,但他们没有。
ServicePort
和ServiceHost
和scheme
定义在哪里?这与 Visual Studio 每次从 docker 容器启动应用程序时都使用新埠这一事实有关吗?为什么这样做?
由于埠 80 有效,不应该在这些组态档中的某处定义埠 80 吗?
谁使用此启动设定组态档?只有 Visual Studio?如果我们从命令列运行 docker,我想我们会忽略组态档吗?
uj5u.com热心网友回复:
你的运行命令是错误的。Docker 的任何自变量都需要放在映像名称之前。影像名称后的任何自变量都会覆写影像中的任何 CMD 定义。
所以代替
docker.exe run planetarydocs -p 9090:80
你应该做
docker.exe run -p 9090:80 planetarydocs
uj5u.com热心网友回复:
从您指向的存盘库中,该应用程序似乎使用埠 8081。
PlanetaryDocs/appsettings.json
"EndPoint": "https://localhost:8081/",
如果您没有更改它,请改用该埠尝试此命令
docker.exe run planetarydocs -p 9090:8081
0 评论