Docker保留不同的映像和容器

时间:2019-03-19 12:56:19

标签: docker docker-compose

我正在使用docker化的应用程序和docker-compose。

所以有时候我只运行docker-compose up,而其他时候运行特定的服务docker-compose run service1 /bin/bash

我注意到以这种方式增加了许多不同的图像和容器。

例如:

docker images -a
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
<none>                    <none>              7579570fc0f6        3 minutes ago       2.07GB
<none>                    <none>              5c4dff8b6808        8 minutes ago       1.34GB
<none>                    <none>              abf3cb89f2fa        9 minutes ago       1.34GB
<none>                    <none>              7592dcccab3b        9 minutes ago       1.27GB
<none>                    <none>              da2be213241c        9 minutes ago       1.27GB
<none>                    <none>              52bbbc8b88c8        4 weeks ago         1.96GB
<none>                    <none>              77a6403fe043        4 weeks ago         1.96GB
<none>                    <none>              4845935c3110        4 weeks ago         1.23GB
<none>                    <none>              48bca82f00c9        4 weeks ago         1.23GB
<none>                    <none>              63d77ddad079        4 weeks ago         1.94GB
<none>                    <none>              6729473d9848        4 weeks ago         1.94GB
<none>                    <none>              e6ef1c44689f        4 weeks ago         1.23GB

docker container ls -a

类似

感觉不对,我在这里错过了一些好的做法吗?我是否应该在docker-compose.yml中添加一些内容以防止这种情况?

更新: 已经看到了有关处理悬空图像和的评论,但是我的问题实际上是如何防止这种情况。 例如,我知道有一种方法可以运行带有remove标签的图像以在停止后销毁它,这是一个好习惯吗?我没有在指南中看到它,因此我没有使用它,但是,当前的情况使我担心磁盘空间...

1 个答案:

答案 0 :(得分:1)

通常为docker-compose up。使用up启动或重新启动docker-compose.yml中定义的所有服务。在默认的“附加”模式下,您会看到来自所有容器的所有日志。在“分离”模式(-d)中,启动容器后,Compose退出,但是容器继续在后台运行。

docker-compose run命令用于运行“一次性”或“临时”任务。它需要您要运行的服务名称,并且仅启动正在运行的服务所依赖的服务的容器。使用运行来运行测试或执行管理任务,例如将数据删除或添加到数据卷容器。 run命令的作用类似于docker run -ti,因为它向容器打开一个交互式终端,并返回与容器中进程的退出状态匹配的退出状态。