如何完全重建Docker容器

时间:2018-05-22 06:47:01

标签: docker docker-compose

不完全确定我在问什么,但我会尝试解释我想要的东西。

我有一个docker-compose文件。从命令行我输入...

docker-compose up

第一次发生这种情况时,它会告诉我pulling停泊者图片,然后是downloading它,building它和running它。

有时我需要更改docker-compose文件,我想重新执行整个过程(如上所述)。

但....我能看到这样做的唯一方法就是使用docker的GUI(在mac上)并点击bomb图标以重置整个事件。

当然,这会破坏我的其他船坞图像(感觉就像一把大锤破解坚果)。

任何人都可以向我提供一个命令,它会重置并强制全部下载图像吗?

3 个答案:

答案 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 .

将完成这项工作:)