docker - Docker容器无法挂载文件夹
问题描述
我正在开发一个应用程序。使用 NodeJS 语言和 docker docker-compose 进行部署。
我有一个用于上传文件的端点。当我上传文件时,应用程序将其保存在“文件”文件夹中(文件文件夹位于项目的根目录)。当容器重新启动时,我不想丢失文件,所以我创建了一个名为“myfiles”的卷并将其安装到“/files”路径。
但是当我检查 myfiles 卷路径时,我看不到任何由 api 创建的文件。如果我重新启动容器上传的文件消失。
这是我用于 api 的 docker-compose.yaml 文件
version: '3.1'
services:
api:
image: api-image
restart: always
volumes:
- myfiles:/files
volumes:
myfiles:
在docker-compose up -d
我上传一些文件并通过调用在容器中查看它们之后
docker exec -it container_name ls
files node_modules package.json
index.js package-lock.json src
docker exec -it container_name ls files
d5a3455a39d8185153308332ca050ad8.png
文件创建成功。
我检查了容器是否正确安装
docker inspect container_name
并结果:
"Mounts": [
{
"Type": "bind",
"Source": "/var/lib/docker/volumes/myfiles/_data",
"Destination": "/files",
"Mode": "rw",
"RW": true,
"Propagation": "rslave"
}
]
解决方案
您正在创建卷,您没有使用文件夹。尝试使用myfiles
当前目录中的文件夹:
version: '3.1'
services:
api:
image: api-image
restart: always
volumes:
- ./myfiles:/files
推荐阅读
- r - 如何在openxlsx生成的XLSX中允许按年、月、日过滤
- azure - 用 ADFS 替换 AD 的最简单方法(或将其添加到它上面)?
- jquery - CSS:“前沿”设计。如何?
- metadata - Icecast/Shoutcast 广播流:提取正在播放的信息
- python - 使用 python 和 beatifulsoup 抓取在线论坛线程的页面
- javascript - {"error":"unsupported_grant_type"} while get token from my rest api on flutter
- python - Model prediction in data generator Keras
- java - SAX parser won't ignore non included element attribute in bean definition while unmarshalling
- facebook - AppSync/Graphql 多个订阅或多个 id 的一个订阅?
- java - Dealing With Simultaneous Collisions in Java