当前位置: 首页 > 面试题库 >

如何在没有docker-compose停机的情况下重建和更新容器?

章玮
2023-03-14
问题内容

我非常喜欢使用docker-compose。

例如。在我的服务器上,当我想通过较小的更改来更新我的应用程序时,我只需要git pull origin master && docker-compose restart完美运行即可。

但是有时候,我需要重建(例如,我添加了一个npm依赖项,需要npm install再次运行)。

在这种情况下,我愿意docker-compose build --no-cache && docker-compose restart

我希望这能:

  • 创建我的容器的新实例
  • 停止现有的容器(在较新的容器完成建造之后)
  • 开始新的
  • (可选)删除旧的,但是可以手动完成

但是实际上,它似乎又重新启动了前一个。

这是预期的行为吗?

重建 如何处理并开始新的重建?

也许我错过了一个特定的命令?还是拥有它有意义?


问题答案:

从手动docker-compose重新启动

如果您对docker-compose.yml配置进行更改,则在运行此命令后这些更改将不会反映出来。

你应该能够做

$docker-compose up -d --no-deps --build <service_name>

--no-deps不启动链接服务。



 类似资料:
  • 例如,在我的服务器上,当我想更新我的应用程序时,我只需要,工作得很好。 但有时,我需要重新构建(例如,我添加了一个npm依赖项,需要再次运行)。 在本例中,我执行。 我希望这样做: null 是预期的行为吗? 如何处理重建并在构建后启动新的重建? 也许我漏掉了一个特定的命令?或者拥有它有意义吗?

  • 我花了过去几个小时试图设置2默认图像的nodejs 14和rethinkdb 2.3.5,所以很抱歉,如果语气有点沮丧,但我目前感到沮丧。 我的要求似乎超级简单。 下载nodejs 14和RejectDB 2.3.5的默认图像。 将我当前目录中的所有内容复制到nodejs 14映像中 我希望nodejs图像依赖于DB图像 在nodejs 14图像中运行2个命令<代码>npm ci和 请参阅测试中的

  • 我有一个docker撰写文件,它看起来像: 我正在为其他人构建的raspberry pi使用mongoDB容器(我刚刚从docker hub中提取),问题是如果由于任何原因出现不正确的关闭,容器无法处理mongod。锁定/data/db目录中的文件。 在这种情况下,在尝试重新启动所有容器时,mongodb容器将保持退出状态,状态代码为100,唯一的修复方法是通过运行sudo rm/data/db/

  • 除了使用环境变量之外,还有哪些方法可以从运行在该主机上的容器内部获取docker主机的主机名?我知道我可以在容器创建时将主机名作为环境变量传递给容器。我想知道如何在运行时查找它。 在docker主机中运行的容器是否有方法获得“foo.example.com”? 编辑以添加用例: 容器将为表单的服务发现创建一个SRV记录 其中20003是docker主机上动态分配的端口,用于侦听bar中某个固定端口

  • 问题内容: 我在Docker容器上安装了Nginx,并且正在尝试像这样运行它: 问题在于Nginx的工作方式,即初始进程会立即产生一个主要的Nginx进程和一些工作程序,然后退出。由于Docker仅监视原始命令的PID,因此容器将暂停。 如何防止容器停止?我需要能够告诉它绑定到第一个子进程,或者阻止Nginx的初始进程退出。 问题答案: 像所有行为良好的程序一样,可以配置为不自我守护。 使用htt

  • 问题内容: 我使用带有标签的php docker容器作为基础: 当我尝试重新启动容器内的apache2时,容器停止: 如何在不停止容器的情况下重新启动apache2? 在将更改放入dockerfile之前,我想使用容器并对其进行自定义。我想安装一些扩展程序,为了使其正常工作,我需要重新启动apache才能使更改生效。 这是通过以下文件的日志文件: 问题答案: 如果将apache用作保持运行容器的主