Dockerfile VOLUME 定义挂载项目树
Dockerfile VOLUME definition to mount project tree
我正在尝试使用 Docker 自动创建开发环境和部署。这是我的 Docker 文件的最小示例:
FROM java
VOLUME .:/hello
并将其构建为
docker build -t hello-server .
然后我 运行 图片 hello-server
,访问它的 /hello
目录,它存在,但是是空的。
但是当我运行图像使用
docker run -i -t -v $(pwd):/hello2 hello-server
/hello2
包含README,Dockerfile和项目的其他文件。如何从 Docker 文件正确定义卷挂载?
这行不通:
VOLUME .:/hello
您不能在 Dockerfile 中指定卷的主机目录。原因是它不能携带。
要么使用 COPY
将文件复制到映像中,要么就像您一直在做的那样在 运行 时安装卷。
我正在尝试使用 Docker 自动创建开发环境和部署。这是我的 Docker 文件的最小示例:
FROM java
VOLUME .:/hello
并将其构建为
docker build -t hello-server .
然后我 运行 图片 hello-server
,访问它的 /hello
目录,它存在,但是是空的。
但是当我运行图像使用
docker run -i -t -v $(pwd):/hello2 hello-server
/hello2
包含README,Dockerfile和项目的其他文件。如何从 Docker 文件正确定义卷挂载?
这行不通:
VOLUME .:/hello
您不能在 Dockerfile 中指定卷的主机目录。原因是它不能携带。
要么使用 COPY
将文件复制到映像中,要么就像您一直在做的那样在 运行 时安装卷。