快速泊坞窗容器刷新工作流程

时间:2017-09-25 14:37:08

标签: docker docker-compose development-environment

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

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

我有一个solr的图像,我将其用于开发和测试目的(以及CI)。 在对图像进行更改时,我需要重建图像并重新创建容器,以便容器使用最新的图像,然后从本地仓库中获取最新的代码。

我创建了自己的图像,它基于官方的solr-docker图像。 repo是一个文件夹,其中包含我正在应用于图像的其他步骤,例如使用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的依赖项。是否可以不下载它们,只使用更新的本地代码和现有的缓存依赖项重建映像?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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

--rmi local选项将删除构建的图片,从而强制重建up