停止docker-compose容器会卸载卷吗?

时间:2019-05-26 20:55:45

标签: docker docker-compose

作为我完全了解Docker如何处理后台卷的一部分(我之前的post的后续内容),我很好奇如何运行docker-compose stop处理卷。

我认为可能会发生两种可能性:

  1. 在运行docker-compose stop之后卸载卷,然后在运行docker-compose start时以字典顺序重新安装。
  2. 在使用docker-compose rm或类似命令卸下容器之前,卷将保持安装状态。

我很好奇,即使重新启动已停止的容器也会在主机文件夹中创建一个空目录。我的docker-compose.yml中有以下内容:

volumes:
- .:/var/www/app
- my_modules:/var/www/app/node_modules

因此,据我对以上链接文章中答案的理解,由于以下原因而创建了空目录:

  1. 绑定安装首先发生(按字母顺序),并覆盖/var/www/app中的所有内容
  2. Docker将尝试挂载node_modules,但是由于该目录不再存在于容器中(被覆盖),因此它将mkdir node_modules拥有一个目录来挂载命名卷。
  3. 由于发生mkdir时绑定安装已经存在,因此我在主机中看到一个新的空node_modules文件夹。

如果已装入卷,这是完全有意义的,但是如果2)是true,并且即使在运行docker-compose stop后仍保持装入状态,为什么我仍会看到在主机中创建了一个空目录?我在node-modulesstop命令之间从主机中删除了up,以重现此行为。

0 个答案:

没有答案