Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Docker桌面的.NET Core 3.1 Web API。在VS.NET中访问容器而不运行项目_Docker_.net Core - Fatal编程技术网

带有Docker桌面的.NET Core 3.1 Web API。在VS.NET中访问容器而不运行项目

带有Docker桌面的.NET Core 3.1 Web API。在VS.NET中访问容器而不运行项目,docker,.net-core,Docker,.net Core,我已经创建了一个.net核心web api项目,并正在Docker Desktop for Windows下成功运行它。只要我在VisualStudio中运行项目,它就可以正常工作。我运行“Docker”配置文件并使用localhost:8000/点击它。我已将其配置为使用端口8000 但是当我停止VisualStudio调试器时,我无法再访问它,即使它在Docker桌面中仍然显示为“正在运行”。如何访问容器中的服务,而不在Visual Studio中运行项目 我是这方面的新手,但是如果已经创建

我已经创建了一个.net核心web api项目,并正在Docker Desktop for Windows下成功运行它。只要我在VisualStudio中运行项目,它就可以正常工作。我运行“Docker”配置文件并使用localhost:8000/点击它。我已将其配置为使用端口8000

但是当我停止VisualStudio调试器时,我无法再访问它,即使它在Docker桌面中仍然显示为“正在运行”。如何访问容器中的服务,而不在Visual Studio中运行项目

我是这方面的新手,但是如果已经创建了一个映像,并且该映像正在容器中运行,我想我可以访问它,而无需运行VisualStudio项目。容器不是一个“在docker主机中运行的已编译、构建、独立的映像实例”吗

谢谢,Brent,

“容器不是一个“在docker主机上运行的我的映像的编译、构建、站立的实例吗?”“是的,你是100%正确的,但在Visual Studio中,他们做了一些性能调整,使所有内容都可以如此平稳地运行,而无需停止和删除容器的任何开销,更新图像并运行它等等。事实上,在引擎盖下,你的二进制文件和源代码都是通过卷映射的,所以每次你运行应用程序时,都不需要处理创建新图像等问题。如果在VisualStudio创建的容器上运行docker inspect,您将能够在JSON输出的“Mounts”部分看到该映射

我从启用Docker的模板创建了一个全新的ASP.NET核心web API应用程序。我注意到容器生命周期与VisualStudio进程相关联。如果我关闭VisualStudio,容器将停止并移除,并且在VisualStudio中打开包含前面提到的项目的解决方案后,容器将立即启动并运行,即使我还没有开始调试

如果要在Visual Studio之外运行容器,则始终可以从项目中的Dockerfile生成映像并运行它

它可能是这样的:

cd "path/with/your/Dockerfile"
docker build -t "your-image-name" .
docker run -it -p 8000:80 -n "your-container-name" "your-image-name"

迈克尔非常感谢你的解释和命令。他们对docker run进行的唯一语法调整是:docker run-p 8001:80--名称webapi容器-it webapi手册在我这样做之后,我可以使用Postman在容器中点击我的服务,而无需在Visual Studio中运行项目。@Brent谢谢,你是对的,我将用-it更新我的答案,如果希望容器在后台运行,也可以使用-d。