快速docker容器刷新工作stream程

这可能是重复的,但是我看到的所有答案都不适合我。

我使用docker工(17.06.2-ce),docker工合成(1.16.1)。

我有一个solr的图像,我用于开发和testing目的(也在CI上)。 当对图像进行更改时,我需要重build图像并重新创build容器,以便容器使用最新的可能图像,而图像最后从本地回购中获取最新的代码。

我已经创build了自己的形象,这是基于官方solr泊坞窗形象。 回购是一个文件夹,我正在应用到图像的其他步骤,如复制文件和使用sed更改现有的configuration。

我在回购工作,并有容器在后台运行。

当我需要刷新容器时,我通常会执行这些命令

sudo docker-compose stop sudo docker rm $(sudo docker ps -a -q) sudo docker rmi $(sudo docker images -q) sudo docker-compose up

上述4个命令是它为我工作的唯一方法 。 我尝试过的所有其他方法都不会重build图像,也不会根据新的重build图像创build容器。 换句话说,图像中的代码将是陈旧的。

问题:

  1. 是否有可能刷新图像+使用更less的命令重build容器?
  2. 每次我运行4个以上的命令时,docker都会下载〜500MB的依赖关系。 有没有可能不下载它们,只是使用更新的本地代码和现有的caching依赖重build图像?

我通常做docker-compose rm && docker-compose build && docker-compose up重新创builddocker容器:它不会下载500mb。

您可以使用docker-compose down来执行以下操作:

 down Stop and remove containers, networks, images, and volumes 

因此,要使用的命令是: docker-compose down --rmi local && docker-compose up

--rmi local选项将删除构build的映像,从而强制重build