Docker:这个组合文件的位置在哪里

当我来到这个样本组成文件的时候,我正在设置一些训练材料:

https://github.com/dockersamples/example-voting-app/blob/master/docker-compose.yml

我无法找到如何安装这个卷,在文件的第48和49行:

volumes: db-data: 

有人能解释我在主机上的这个卷在哪里? 无法找到它,我不希望在容器消失后,让任何postgresql数据悬而未决。 类似的事情发生在网络上:

 networks: front-tier: back-tier: 

为什么docker撰写接受像这样的空网络定义?

找到卷

这样的卷在Docker内部,并存储在Docker存储中(通常位于/var/lib/docker )。 您可以获得卷的列表:

 $ docker volume ls DRIVER VOLUME NAME local 1c59d5b7e90e9173ca30a7fcb6b9183c3f5a37bd2505ca78ad77cf4062bd0465 local 2f13b0cec834a0250845b9dcb2bce548f7c7f35ed9cdaa7d5990bf896e952d02 local a3d54ec4582c3c7ad5a6172e1d4eed38cfb3e7d97df6d524a3edd544dc455917 local e6c389d80768356cdefd6c04f6b384057e9fe2835d6e1d3792691b887d767724 

如果你想要:你可以找到你的系统上储存的音量。

 $ docker inspect 1c59d5b7e90e9173ca30a7fcb6b9183c3f5a37bd2505ca78ad77cf4062bd0465 [ { "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/1c59d5b7e90e9173ca30a7fcb6b9183c3f5a37bd2505ca78ad77cf4062bd0465/_data", "Name": "1c59d5b7e90e9173ca30a7fcb6b9183c3f5a37bd2505ca78ad77cf4062bd0465", "Options": {}, "Scope": "local" } ] 

清理未使用的卷

至于确保事物不会悬而未决,您可以使用prune命令,在这种情况下docker volume prune 。 这会给你这个输出,你选择是否继续修剪。

 $ docker volume prune WARNING! This will remove all volumes not used by at least one container. Are you sure you want to continue? [y/N] 

docker-compose.yml中的“空”定义

如果您不需要做任何事情,除了定义一个卷或网络应该存在以外,有一种趋势是接受这些“空”的定义,如卷和网络。 也就是说,如果你想创建它,但是默认设置没问题,那么没有特别的理由来指定参数。