Docker compose v3:卷typesmount和bind之间的区别

我正在使用docker-compose语法版本3,并希望使用一些卷。 关于卷的长语法的文档声明如下:

type :安装typesvolumebind

但从来没有完全解释这种差异。 它是什么?

bind是一个更简单的理解。 它需要一个主机path,说/data并将其挂载到您的容器,说/opt/app/data/data可以是任何东西,可能安装在NFS或者它可能是一个本地主机path。 docker run -v /data:/opt/app/data -d nginx

volume装是您可以使用指定卷的位置。

你通常会使用一个卷驱动器,但是你可以使用默认的本地卷驱动器获得一个主机装入的path,如下所示:

docker volume create data docker run -d -v data:/opt/app/data nginx

如果只运行这个命名卷,也可以是匿名的: docker run -d -v /opt/app/data nginx

如果运行docker volume ls ,docker将为匿名卷创build一个自动生成的长名称。

在docker-compose中,你可以像下面这样使用它:

 web: image: nginx:latest volumes: /data:/opt/app/data data:/opt/app/data1 volumes: data: