当docker-compose run命令被触发时,是否可以重用现有的已停止容器?

VivekDev

我从Visual Studio 2019创建了以下简单的dotnet核心控制台应用程序。

Console.WriteLine("Hello World!"); 
var readText = Console.ReadLine(); 
Console.WriteLine(readText);

然后,我向该控制台项目添加docker支持。我在另一个问题中写了逐步说明,以添加Docker支持。

在命令提示符下,我现在导航到docker-compose文件所在的文件夹,并发出以下命令

docker-compose run <service name from docker-compose.yml file>

专门针对我的情况

docker-compose run dokconsoleapp

其中dokconsoleappdocker -compose文件中定义的服务名称。

这将构建映像,然后启动我的控制台应用程序,并在容器内部以交互方式运行。

当应用程序退出时,容器停止。现在,当我想再次运行时,我再次发出相同的命令。该应用程序按预期运行。但奇怪的是,该应用程序是在新容器中启动的,而不是重用现有的已停止容器。

重复进行Docker-Compose运行创建新容器

所以我运行了3次命令,每次创建一个新容器时,请参见docker桌面。

Docker-Compose运行启动多个容器,如Docker Desktop中所示

现在我的问题是,我只是很好奇,这里是否可以通过docker-compose run来重用现有容器,而不是创建新容器。

注意命令

docker-compose up 

由于创建的容器不是交互式的,因此无法使用。所以我只需要使用“运行”。更多细节在这里

Nischay Goyal

使用docker-compose run $SERVICENAME将始终创建一个新容器,如文档中所述。

参考:-https: //docs.docker.com/compose/reference/run/

与run一起使用的命令在新容器中启动,该容器具有服务定义的配置,包括卷,链接和其他详细信息。但是,有两个重要区别。

我检查了您的其他文章,因为您正在尝试使用特定服务获得交互式外壳,所以可以通过以下方式实现。看一下这个例子docker-compose.yml

version: '3'
services:
  test:
    container_name: test
    image: 'busybox'
    command: sleep 5d

docker-compose up -d

-d =>以分离模式运行

command: sleep 5d根据要运行5 days的容器,然后执行以下命令,然后使用以下命令执行到容器中

$ docker exec -it test /bin/sh 

这样您就不会每次都得到新的容器。

还要看一下这篇文章:-https : //docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过Docker Compose重用现有卷

来自分类Dev

通过Docker Compose重用现有卷

来自分类Dev

将现有Docker容器迁移到Docker Compose

来自分类Dev

Docker Compose循环容器链接

来自分类Dev

docker-compose +外部容器

来自分类Dev

Docker-compose 链接容器

来自分类Dev

docker compose yaml-命令

来自分类Dev

将 docker run 转换为 docker compose

来自分类Dev

docker compose的问题:找不到容器命令

来自分类Dev

将容器添加到现有的docker-compose.yml

来自分类Dev

Docker-compose重新运行现有容器

来自分类Dev

当一个容器通过docker-compose停止时如何停止所有容器?

来自分类Dev

关于docker-compose时docker容器的退出

来自分类Dev

是否有使用docker compose复制容器的方法?

来自分类Dev

具有docker-compose的多台主机上的Docker容器

来自分类Dev

将docker run命令转换为docker compose

来自分类Dev

将docker run命令转换为docker compose

来自分类Dev

用于工作 docker-compose (postgres) 的等效 docker run 命令

来自分类Dev

如何重用docker-compose项目?

来自分类Dev

从主机解析docker-compose容器名称

来自分类Dev

使用docker-compose设置容器时区

来自分类常见问题

在docker compose中更改容器端口

来自分类Dev

docker-compose up容器开始订购

来自分类Dev

容器名称的Docker-Compose问题

来自分类Dev

通过docker-compose重新使用容器

来自分类Dev

在docker compose中更改容器端口

来自分类Dev

将容器与docker-compose链接

来自分类Dev

Docker Compose无法正确设置容器链接

来自分类Dev

使用Docker Compose创建多个容器