docker - 如何重新启动哪个镜像已更改的容器?

标签 docker docker-compose

我使用docker-compose启动一组不相关的Docker容器。我之所以使用docker-compose,是因为通过docker-compose.yaml进行配置很容易,并且该文件带来了集中式配置。

我遇到的一个问题是图像更新,或者实际上是图像更新后的容器更新。 我通过docker-compose pull更新了它们,但是先前生成的容器不会自行重启。我有两种可能的解决方案,都可行,但都不理想:

  • pull之后重新启动所有容器。这将导致不可用,这在我的家庭环境中不是至关重要的事情,但仍然(尤其是在重置灯光后,重新启动Home Assistant会很痛苦)
  • 编写一些代码来检查在拉动期间哪些图像ID已更改,然后重新启动相关容器(首先将其删除)。如果没有更好的方法,这就是我将要使用的解决方案。

  • 我想知道是否有更好的姿态。

    这是一个家庭环境,因此我想避免使用诸如Kubernetes之类的重型解决方案。

    Swarm模式可以工作,但我只是读过它,它看起来更像是一种确保状态的解决方案,而不是容器管理器(从某种意义上说,它将根据产生它们的图像的新鲜度重新启动容器)。

    最佳答案

    docker pull image之后,docker-compose -f "docker-compose.yml" up -d将仅重新启动docker pull之后具有新版本镜像的容器。它不会影响图像保持不变的容器。此设置对我来说效果很好。

    关于docker - 如何重新启动哪个镜像已更改的容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56185907/

    相关文章:

    docker - 使用 Docker 环境变量作为凭据

    docker - 如何将端口映射动态传递给docker-compose up命令?

    具有构建输出且无源的 Docker 容器

    docker - 无法使用凭据存储在 Ubuntu 18 上登录 Docker

    docker - 将大于 400 KB 的有效负载 POST 到 Kubernetes 中的容器失败

    docker - 更新了 windows docker,现在它在本地主机之外不起作用

    docker - Docker在其卷中使用Dockerfile和永久帮助文件制作镜像

    php - Docker 服务 php-fpm 容器之间的 cURL 导致 "Connection refused"

    docker-compose - DDEV/PhpStorm - 无效的 ddev-docker-compose-full.yaml

    docker - 使用 Kubernetes 上的卷的挂载路径出现问题