问题描述
下面是我的Dockerfile"的内容
Below is the content of my "Dockerfile"
FROM node:boron
# Create app directory
RUN mkdir -p /usr/src/app
# Change working dir to /usr/src/app
WORKDIR /usr/src/app
VOLUME . /usr/src/app
RUN npm install
EXPOSE 8080
CMD ["node" , "server" ]
在这个文件中,我期待 VOLUME ./usr/src/app
指令挂载主机中当前工作目录的内容要挂载到 /usr/src/app
容器的文件夹.
In this file I am expecting VOLUME . /usr/src/app
instruction to mountcontents of present working directory in host to be mounted on /usr/src/app
folder of container.
请告诉我这是否正确?
推荐答案
docker官方教程说:
The official docker tutorial says:
数据卷是一个或多个容器中的一个特别指定的目录,它绕过了联合文件系统.数据卷为持久性或共享数据提供了几个有用的功能:
创建容器时会初始化卷.如果容器的基础镜像包含指定挂载点的数据,
现有数据在卷上复制到新卷中
初始化.(注意这不适用于挂载主机
目录.)
Volumes are initialized when a container is created. If the container’s base image contains data at the specified mount point,
that existing data is copied into the new volume upon volume
initialization. (Note that this does not apply when mounting a host
directory.)
数据卷可以在容器之间共享和重用.
Data volumes can be shared and reused among containers.
直接对数据卷进行更改.
Changes to a data volume are made directly.
更新映像时不会包含对数据卷的更改.
Changes to a data volume will not be included when you update an image.
即使容器本身被删除,数据卷仍然存在.
Data volumes persist even if the container itself is deleted.
在 Dockerfile
中,您只能指定容器inside 卷的目的地.例如/usr/src/app
.
In Dockerfile
you can specify only the destination of a volume inside a container. e.g. /usr/src/app
.
当你运行一个容器时,例如docker run --volume=/opt:/usr/src/app my_image
,您可以但不必指定其挂载点(/opt代码>)在主机上.如果您不指定
--volume
参数,则将自动选择挂载点,通常在 /var/lib/docker/volumes/
下.
When you run a container, e.g. docker run --volume=/opt:/usr/src/app my_image
, you may but do not have to specify its mounting point (/opt
) on the host machine. If you do not specify --volume
argument then the mount point will be chosen automatically, usually under /var/lib/docker/volumes/
.
这篇关于了解“音量"DockerFile 中的指令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!