docker - 如何检查容器是否是最新的

标签 docker docker-compose

我正在使用 docker-compose 在 linux 服务器 (centos) 中管理我的容器“abc”。

我要执行的步骤:

1) docker compose pull 'abc' 以拉取我的最新镜像

docker-compose --file docker-compose.yml pull

2) docker 命令来检查我的容器 'abc' 是否需要更新( 可能 ???)

3)如果我的容器“abc”我将执行 docker-compose up -d
docker-compose --file docker-compose.yml up -d 

备注:我知道第 3 步正在检查并在必要时更新容器,但如果第 2 步返回 True,我需要执行预任务

最佳答案

在我阅读时重申您的问题:

Prior to updating a container, do X



变化包括:
  • 图片更改
  • 容器的环境变化
  • 网络变化
  • ..等

  • TLDR; 您想要的是dry-run docker-compose 的特点.你并不孤单:https://github.com/docker/compose/issues/1203

    更多的; 我认为您尝试使用 docker-compose 不走运直到开发者社区解决这个问题为止。为了完全安全,您需要在影响正在运行的容器的任何事情即将发生变化时执行飞行前操作。

    潜在方向:如果我们希望这样做,我们会构建一个 shell 脚本来为我们进行检查,就像对撰写文件的差异一样简单,或者像定位每个图像一样复杂,例如 grep image docker-compose.yml | sed "s/^.*\: \(.*\),$/\1/g" ...等等等等。

    关于docker - 如何检查容器是否是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47287745/

    相关文章:

    shell - 如何使用端口号删除Docker容器

    docker - 如何让我的 Docker compose "wait-for-it"脚本调用原始容器 ENTRYPOINT 或 CMD?

    ruby-on-rails - Mongo::Error::NoServerAvailable:群集中没有主服务器可用

    node.js - nuxt start 需要 node_modules 才能运行

    escaping - 如何在 docker compose 文件中转义 $ 美元符号?

    asp.net - 无法使用入口点运行Docker容器

    java - Docker 容器中的 Wildfly 无法启动

    cluster-computing - 在 CoreOS 上使用 etcd 进行服务发现时如何处理陈旧数据?

    php - Composer 使用 dockerfile 安装

    Docker-compose 卷不复制任何文件