避免在Docker中拥有多个容器

时间:2019-02-14 13:40:26

标签: docker

我正在学习docker,经常不得不多次构建容器。

我正在使用以下命令:docker build -t sometag:someversion .,每次都会创建一个新的容器(如我稍后所知道的)。

是否有一种方法可以在每次构建后仅拥有一个容器?<​​/ p>

还是我只需要在退出容器后使用以下命令删除容器:docker run --rm my-image而不使用docker build

1 个答案:

答案 0 :(得分:0)

您混合使用的图像(基本上是“蓝图”,是“ docker build” 的结果)和容器:这些是将从该图像运行的实例。

执行 docker build 时,即使没有标签说明,它仍将替换以前的 image ,但不会破坏它。而是将其取消标记(您将看到一个标记)。

当您执行 docker run 时,将根据该图像创建一个容器。当您停止它时,它不会删除容器:您可以使用“ docker ps -a” 命令查看所有已停止的容器。如果要删除它,则必须“ docker rm”

好吧,但是有时候,您想做一些更有效(更一般)的清洁 ...,例如,当您有未卸下的容器或旧的悬挂图像时。 在这种情况下,docker提供了“ 修剪”操作,该操作可以在任何种类的docker对象上执行:图像,卷,容器,网络,配置和密钥(我可能已经忘记了一些,但这就是基本思路)。 为此,请输入

'docker <one among above object> prune' 

(这真是不可思议)。...

请注意,如果其中某些对象仍链接到其他未删除的对象,则需要首先对其进行“修剪”:例如,如果您有一个停止(但未删除)的容器仍在使用未标记的图像,则您必须先移除容器!

还请注意,如果不再使用某些图像,则可能必须在“ 图像修剪”之后重新下载一些图像(如果这些图像不再可用,则会出现问题!)

最终,您可以使用系统修剪来清理它们:

"docker system prune"*

这很方便...但不是很细微!