如何运行VS 2017生成的docker图像

Hok*_*ike 13 docker asp.net-core visual-studio-2017

Docker noob在这里......

如何正确运行由Visual Studio 2017在命令行生成的Asp.Net CORE应用程序的docker镜像?

docker run -it -d -p 80:32769 myappimage
Run Code Online (Sandbox Code Playgroud)

似乎没有正常工作(图像运行,但我无法浏览到我的应用程序)

注意:我只是使用默认模板在Studio中创建了一个示例ASP.Net Core Web App,并添加了Docker支持(通过单击"添加Docker支持"复选框).当您执行此操作时,Studio会添加dockerfile和一些docker-compose文件.

当Visual Studio"运行"图像时(通过按F5) - 我可以成功浏览到我的应用程序(通过" http:// localhost:32789 "或类似的主机端口.容器内的应用程序位于端口80上).但我无法弄清楚在命令行自己运行它的命令.

Studio添加到项目中的标准Dockerfile是......

FROM microsoft/aspnetcore:1.1
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "WebApplication2.dll"]
Run Code Online (Sandbox Code Playgroud)

Ily*_*kov 25

对的,这是可能的.在Release配置中重建您的解决方案并尝试运行docker-compose项目F5以确保图像已更新且您的应用程序正常运行.然后执行docker images console命令.你会看到类似的东西:

REPOSITORY   TAG      IMAGE ID       CREATED              SIZE
Your.App     latest   673b79a6bb3d   About a minute ago   294 MB
Run Code Online (Sandbox Code Playgroud)

您只需从该映像运行一个新容器,并将其公开的端口映射到localhost端口.默认情况下,公开的端口是80(查看Dockerfile).例如:

docker run -d -p 1234:80 --name some_name Your.App:latest
Run Code Online (Sandbox Code Playgroud)

那么你的应用程序应该可以访问http://127.0.0.1:1234/.

说明:

如果设置了Debug配置,则Visual Studio将创建空的不可工作映像.它手动将空容器映射到文件系统以进行调试,"编辑并继续"功能等.这就是dev没有Visual Studio的图像无用的原因.在Release配置中构建映像以使其可用.

完整的发布过程在文档中描述:用于Docker的Visual Studio工具

发布Docker镜像

完成应用程序的开发和调试周期后,Visual Studio Tools for Docker将帮助您创建应用程序的生产映像.将调试下拉列表更改为 Release并构建应用程序.工具将生成带有:latest标记的图像,您可以将其推送到私有注册表或Docker Hub.

  • 非常感谢我好几天都在寻找这个答案 (2认同)