作为我完全了解Docker如何处理后台卷的一部分(我之前的post的后续内容),我很好奇如何运行docker-compose stop
处理卷。
我认为可能会发生两种可能性:
docker-compose stop
之后卸载卷,然后在运行docker-compose start
时以字典顺序重新安装。docker-compose rm
或类似命令卸下容器之前,卷将保持安装状态。我很好奇,即使重新启动已停止的容器也会在主机文件夹中创建一个空目录。我的docker-compose.yml
中有以下内容:
volumes:
- .:/var/www/app
- my_modules:/var/www/app/node_modules
因此,据我对以上链接文章中答案的理解,由于以下原因而创建了空目录:
/var/www/app
中的所有内容node_modules
,但是由于该目录不再存在于容器中(被覆盖),因此它将mkdir node_modules
拥有一个目录来挂载命名卷。mkdir
时绑定安装已经存在,因此我在主机中看到一个新的空node_modules
文件夹。如果已装入卷,这是完全有意义的,但是如果2)是true,并且即使在运行docker-compose stop
后仍保持装入状态,为什么我仍会看到在主机中创建了一个空目录?我在node-modules
和stop
命令之间从主机中删除了up
,以重现此行为。