快速码头容器刷新工作流程
问题描述:
这可能是重复的,但是我看到的所有答案都不适用于我。快速码头容器刷新工作流程
我在使用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个命令是唯一途径它为我工作。我尝试过的所有其他方法都不会重建图像,也不会基于新的重建图像创建容器。换句话说,图像中的代码将是陈旧的。
问题:
- 是否有可能刷新图像+使用更少的命令重建容器?
- 每次我运行4个以上的命令时,docker会下载〜500MB的依赖关系。有没有可能不下载它们,只是使用更新的本地代码和现有的缓存依赖性重建图像?
答
我通常做docker-compose rm && docker-compose build && docker-compose up
重新创建码头集装箱:它不会下载500MB。
答
您可以使用docker-compose down
其执行以下操作:
down Stop and remove containers, networks, images, and volumes
因此使用该命令将是:docker-compose down --rmi local && docker-compose up
的--rmi local
选项将删除内置的图像,从而迫使上up
下载的依赖关系是什么?由于码头工人在本地缓存基础镜像,因此他们不应该是图像 – yamenk