Dockerfile 中的 VOLUME 指令有什么用途?

Dockerfile 中的 VOLUME 指令有什么用途?

在文档中,它说 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 /myvolMountpoint ( )(使用 检查):/myvoldocker 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)。

相关内容