2017-09-25 31 views
0

这可能是重复的,但是我看到的所有答案都不适用于我。快速码头容器刷新工作流程

我在使用docker(17.06.2-ce),docker-compose(1.16.1)。

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

我已经创建了基于官方solr-docker图像的自己的图像。回购是一个包含额外步骤的文件夹,我将其应用于图像,例如复制文件并使用sed对现有配置进行更改。

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

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

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

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

问题:

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

下载的依赖关系是什么?由于码头工人在本地缓存基础镜像,因此他们不应该是图像 – yamenk

回答

1

我通常做docker-compose rm && docker-compose build && docker-compose up重新创建码头集装箱:它不会下载500MB。

0

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

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

因此使用该命令将是:docker-compose down --rmi local && docker-compose up

--rmi local选项将删除内置的图像,从而迫使上up

重建