我正在使用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标签的图像以在停止后销毁它,这是一个好习惯吗?我没有在指南中看到它,因此我没有使用它,但是,当前的情况使我担心磁盘空间...
答案 0 :(得分:1)
通常为docker-compose up
。使用up
启动或重新启动docker-compose.yml
中定义的所有服务。在默认的“附加”模式下,您会看到来自所有容器的所有日志。在“分离”模式(-d
)中,启动容器后,Compose退出,但是容器继续在后台运行。
docker-compose run
命令用于运行“一次性”或“临时”任务。它需要您要运行的服务名称,并且仅启动正在运行的服务所依赖的服务的容器。使用运行来运行测试或执行管理任务,例如将数据删除或添加到数据卷容器。 run
命令的作用类似于docker run -ti
,因为它向容器打开一个交互式终端,并返回与容器中进程的退出状态匹配的退出状态。