不完全确定我在问什么,但我会尝试解释我想要的东西。
我有一个docker-compose
文件。从命令行我输入...
docker-compose up
第一次发生这种情况时,它会告诉我pulling
停泊者图片,然后是downloading
它,building
它和running
它。
有时我需要更改docker-compose文件,我想重新执行整个过程(如上所述)。
但....我能看到这样做的唯一方法就是使用docker的GUI(在mac上)并点击bomb
图标以重置整个事件。
当然,这会破坏我的其他船坞图像(感觉就像一把大锤破解坚果)。
任何人都可以向我提供一个命令,它会重置并强制全部下载图像吗?
答案 0 :(得分:3)
因此,我对您要求的内容的理解是能够第一次执行docker compose up
操作可重复
所以docker提供以下命令:
docker images <image_name>
列出给定名称的所有图像。它也适用于通配符,因此如果所有图像都带有前缀,则docker images my_app*
可以正常工作
要获取图片ID,您可以使用docker images <image_name> -q
...这只会提供图片ID ...您可以docker images <image_name> golang -q && docker images postgres
为例列出您的图片ID
现在您使用这些ID并使用docker rmi <image_id>
删除图像。
<强> TL; DR; 强>
所以把它们放在一起你就去了:
docker rmi `docker images <image_name> -q && docker images <image_name> -q`
我认为反引用技术可以在OSX中运行(在bash下),但如果没有,你只想在调用docker rmi
之前先评估图像ID。让我知道,我将删除这一段。
请注意,这只会删除您的图片,如果您附加了卷,则可能还需要删除它们。我认为docker-compose down -v
会为你做这件事,但是当我整理答案时我需要确认一下。
答案 1 :(得分:0)
如果您的问题是缓存,您可以使用--no-cache(检查docker docs)的内容来强制从头开始重建所有步骤。
如果你想删除图片,这个命令应该有帮助
new Future.delayed(const Duration(seconds: 1)); //recommend
new Timer(const Duration(seconds: 1), ()=>print("1 second later."));
sleep(const Duration(seconds: 1)); //import 'dart:io';
new Stream.periodic(const Duration(seconds: 1), (_) => print("1 second later.")).first.then((_)=>print("Also 1 second later."));
//new Stream.periodic(const Duration(seconds: 1)).first.then((_)=>print("Also 1 second later."));
,要获取所有图片,请选择正确的ID
docker ps -a
,应该做的诀窍
答案 2 :(得分:0)
docker build -t ignitus-rest:latest .
将完成这项工作:)