当前位置: 首页 > 知识库问答 >
问题:

如何强制重新创建并在docker-compose下只启动一个容器?

丁嘉庆
2023-03-14

在我进行任何代码更改后,我的典型开发步骤是:

    < li >更改代码并构建jar文件 < li >构建使用jar文件的docker映像 < li >取消当前的“docker-compose up”命令。 < li >再次运行" docker-合成"。

我的docker-compose文件有五个服务。在第三步,所有的容器都倒下了。理想情况下,我只需要重新运行我的应用程序容器。

我正在寻找一种方法,在批处理脚本中执行以下操作:

    < li >关闭应用程序容器。其他四个容器应该继续运行。 < li >建立新的码头工人形象 < li >强制docker-compose重新创建我的应用程序容器并启动它。

对于第1步,看起来我可以使用“docker-compose kill myappname”。

第2步也很简单。

我想知道如何完成第三步。谢谢。

共有1个答案

慕铭
2023-03-14

无需显式停止当前容器。

如果你的映像已更改,docker compose 将在你再次运行 up 命令时识别它并重新创建容器。

因此,重建图像并运行docker compose up

如果您使用compose构建映像,请添加--build标志以让它重建您的映像,之后还会重新创建容器。

您还可以将特定服务的名称添加到up命令中,即docker compose up-d--build app

如果图像未更改,则可以添加——强制重新创建标志。

 类似资料:
  • 我有一个文件,它包含4个容器:redis、postgres、api、worker 在worker的开发过程中,我经常需要重新启动它,以便应用更改。有没有什么好方法可以在不重新启动其他容器的情况下重新启动容器(例如)?

  • 我有容器A和B,当我执行时,我希望它首先启动容器A,然后启动容器B。我指定了指令,但它似乎被忽略了(我看到它首先启动容器B)。 运行版本为3.4的YML文件,该文件有2个服务(A,B)。 谢谢你

  • 问题内容: 我有一个包含4个容器的文件:redis,postgres,api,worker 在worker的开发过程中,我经常需要重新启动它才能应用更改。有什么好的方法可以在不重新启动其他容器的情况下重新启动容器(例如)? 问题答案: 这很简单:使用命令: 您可以设置杀死容器之前等待停止的时间(以秒为单位) 请注意,这将重新启动容器,但不会重建它。如果要应用更改然后重新启动,请查看其他答案。

  • 我有一个比postgresql运行更早的服务器,我读到Docker-ComposeV3不再使用HealthChecks来执行。我想知道除了之外,我还有什么其他选项。也就是说,我希望docker-compose重新启动失败后关闭/关闭的容器。我找到了这个线程,它展示了如何用docker-compose重新启动一个容器,如何用docker-compose重新启动一个容器,但这并没有解决我的问题。谢谢!

  • 问题内容: 我的Docker映像构建在Jenkins CI服务器上,并被推送到我们的私有Docker Registry。我的目标是使用docker- compose配置环境,该环境始终会启动映像的原始构建状态。 我目前在不同的机器上使用docker-compose 1.3.2和1.4.0,但是我们之前也使用了旧版本。 我总是使用命令从注册表中获取新图像并启动它们。我相信我的首选行为在某个时间点之前

  • 我有一个docker compose文件,看起来像: 运行之后,我看到所有的服务都启动了,并且看起来工作良好。我的服务使用以下sqlalchemy连接字符串连接到postgres: 每当我终止组合(使用或)然后重新启动它时,postgres中的数据似乎会持续存在。我相信它持续存在的原因是因为我的webserver从上一个会话的数据开始。 我阅读了postgres docker映像的文档,并找到了环