我创建以下图像:
FROM node:14.7.0-alpine3.12
COPY ./test.txt /home/node/app/
Run Code Online (Sandbox Code Playgroud)
使用这个命令:
docker build . -t my-test
Run Code Online (Sandbox Code Playgroud)
镜像构建成功,我这样运行:
docker run -it my-test
Run Code Online (Sandbox Code Playgroud)
/home/node/app我使用 SSH检查该文件夹的内容。
到目前为止一切都很好。我将图像推送到我的 docker 注册表。我下载图像,运行它并执行相同的操作。都好。我可以看到该文件test.txt按预期存在。
我在其他机器上尝试了同样的操作,一切都很好。但是,在某些机器上,我执行相同的操作,但文件test.txt不存在。我仔细检查了哈希值,图像是正确的,但文件不在图像中。
怎么了?!
如果您在现有目录上安装卷,您将丢失图像的原始内容。
在您的情况下,可能会发生这种情况,因为文件夹安装在路径的某一级别中/home/node/app。
用于docker inspect <container>监视容器内已安装卷的列表("Mounts"字段)。您还可以使用以下命令提取并仅输出安装:
docker inspect -f '{{ .Mounts }}' <container>
| 归档时间: |
|
| 查看次数: |
3202 次 |
| 最近记录: |