我正在使用docker-compose
语法版本3,并希望使用一些卷。卷的长语法上的documentation表示以下内容:
type
:装载类型volume
或bind
但从未完全解释其中的差异。它是什么?
答案 0 :(得分:13)
bind
更容易理解。它需要一个主机路径,比如/data
并将其安装在您的容器中,比如/opt/app/data
。 /data
可以是任何内容,可能安装在NFS
上,也可能是本地主机路径。
docker run -v /data:/opt/app/data -d nginx
volume
mount是您可以使用命名卷的地方。
您通常会使用卷驱动程序,但您可以使用默认的本地卷驱动程序获取主机安装路径,如下所示:
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会为匿名卷创建一个自动生成的长名称。
在docker-compose中,您只需按以下方式使用它:
web:
image: nginx:latest
volumes:
/data:/opt/app/data
data:/opt/app/data1
volumes:
data: