【发布时间】:2020-06-04 17:45:02
【问题描述】:
我从 Visual Studio 2019 创建了以下简单的 dotnet 核心控制台应用程序。
Console.WriteLine("Hello World!");
var readText = Console.ReadLine();
Console.WriteLine(readText);
然后我将 docker 支持添加到这个控制台项目。我已经在另一个 so question 中编写了分步说明以添加 docker 支持。
在命令提示符下,我现在导航到 docker-compose 文件所在的文件夹并发出以下命令
docker-compose run <service name from docker-compose.yml file>
特别是我的情况
docker-compose run dokconsoleapp
其中 dokconsoleapp 是在 docker-compose 文件中定义的服务名称。
这会构建映像,我的控制台应用程序将启动并在容器内交互运行。
当应用退出时,容器会停止。现在,当我想再次运行时,我再次发出相同的命令。该应用程序按预期运行。但奇怪的是,该应用程序是在一个新容器中启动的,而不是重用现有的停止容器。
所以我运行该命令 3 次,每次创建新容器时,请在 docker 桌面中查看。
现在我的问题是,我只是好奇,这里有没有办法使用 docker-compose run 来重用现有容器,而不是创建新容器。
注意命令
docker-compose up
不起作用,因为它创建的容器不是交互式的。所以我只能使用“运行”。更多详情here.
【问题讨论】:
-
"当应用退出时,容器停止。"这通常是 Docker 的工作方式。为什么这对您的应用程序来说是个问题?您能否在问题中包含一些与 Docker 相关的工件(例如,您的
docker-compose.yml文件中是否有volumes:)?
标签: docker docker-compose