决定何时使用'docker run'与'docker start'并使用给定图像的最新版本的策略

bjl*_*ine 12 docker

我对我们的一些服务进行了停靠.对于我们的开发环境,我想让开发人员尽可能简单,因此我正在编写一些脚本来管理dockerized组件.我希望开发人员能够启动和停止这些服务,就好像它们是非对接的一样.我不希望他们担心创建和运行容器与停止和启动以及已经创建的容器.我想这可以使用图来处理.要创建容器(如果它尚不存在)并启动服务,我将使用fig up --no-recreate.为了停止服务,我使用无花果停止.

我还想确保开发人员运行使用最新映像构建的容器.换句话说,有些东西会检查我们的Docker注册表中是否有更高版本的图像.如果是这样,将下载并运行此图像以从该图像创建新容器.目前,我似乎必须使用docker命令列出注册表的内容(docker search)并将其与现有的本地容器(docker ps -a)进行比较,并添加一些grep ing和awk ing或use Docker API实现了同样的功能.

任何持久性数据都将写入已装入的卷,因此数据应在创建新容器后继续存在.

这似乎可能是一种常见的模式,所以我想知道其他人是否已经考虑过这些场景.

cre*_*ack 1

我不熟悉无花果,但你的情况看起来不错。

通常,我更喜欢杀死/删除+运行我的容器,而不是使用启动/停止。这样,如果有可用的新镜像,Docker 将使用它。这只适用于无状态服务。当您使用卷来存储持久数据时,您可以执行类似的操作。

关于映像更新,docker pull <image>每 N 分钟运行一次并检查命令返回的“状态”怎么样?如果它是最新的,则不执行任何操作,否则,终止/重新运行容器。