在文档中,它说 VOLUME 指令创建了一个安装点,但我使用以下命令创建了一个图像:
FROM alpine
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting
我能够mount /myvol
使用容器文件系统上的任何其他路径docker run -v vol:/myvol myimage
,并且能够看到/var/lib/docker/vol/_data
主机上的数据。
VOLUME myvol
添加到 Docker 文件会有什么不同?
答案1
运行 Dockerfile ( ) 后,将创建VOLUME /myvol
Mountpoint ( )(使用 检查):/myvol
docker run -it --rm ${YOURCONTAINER_IMAGE} /bin/bash
mount | grep myvol
/dev/mapper/host--vg-var on /myvol type ext4 (rw,relatime,data=ordered)
挂载点将是主机上的临时 Docker 卷:
de5a4052ac6f48788baf17ed66efa603eb89aa023aac7768688839ec6df7dbec/_data/the_data_within_myvol
运行 ( docker run -v vol:/myvol myimage
) 后,还将创建卷vol
并获取 ( ) 下容器内的所有文件/myvol
。
区别在于创建它的方式(在 Dockerfile 中,或使用docker run -v
)。