无法理解Docker-compose服务属性

我是新来的docker工人,偶然发现了一个docker文件。 我得到所有其他属性的要点,但我不知道下面的行是在做什么:

卷: – ./data:/data/db

任何人都可以请帮我这个。

多个卷可以附加到您的容器…每个被定义为一对

volumes: - /parent/host/path01:/inside/container/path_one - /parent/host/path02:/inside/container/path_another 

每一对的左侧是在容器被创build之前在主机上可到达的预先存在的卷…右侧是刚刚启动的容器从容器内左侧

在你的例子中,在你启动docker-compose的相同目录中,显然存在一个名为data的dir …使用./data将使用相对path到达它。右侧/ data / db是代码在你的容器调用相同的目录

 /full/path/to/reach/data:/data/db 

是使用绝对path来达到相同的./data目录生活在父主机的docker-compose被执行

此卷映射允许父主机上的永久存储器对容器成为可见(读/写),因为容器文件系统是短暂的,因此当容器退出此卷映射时,容器文件系统会消失,从而使容器可以访问指定path的永久存储必须出现在你的yaml文件中…对于像mongo这样的数据库容器特别重要…容器中没有映射到卷中的所有文件yaml一旦容器存在就消失

这是一个典型的mongo yaml片段,它可以访问父主机上的永久存储

  loudmongo: image: mongo container_name: loud_mongo restart: always ports: - 127.0.0.1:27017:27017 volumes: - /cryptdata7/var/data/db:/data/db 

短划线符号可能是你扔掉的东西,因为它是YAML列表元素格式不好的YAML语法。

破折号之后的卷语法就是在主机到容器绑定安装卷映射之后的所谓“短”语法之后 。