Docker 容器无法挂载文件夹
Docker container can't mount folder
我正在处理一个应用程序。使用 NodeJS 作为语言,docker docker-compose 用于部署。
我有一个用于上传文件的端点。当我上传文件应用程序时,将其保存在 "files" 文件夹中(文件文件夹位于项目的根目录中)。当容器重新启动时,我不想丢失文件,所以我创建了一个名为 "myfiles" 的卷并将其安装到“/files”路径。
但是当我检查 myfiles 卷路径时,我没有看到 api 创建的任何文件。如果我重新启动容器,上传的文件就会消失。
这是我的 docker-compose.yaml 文件 api
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
我正在处理一个应用程序。使用 NodeJS 作为语言,docker docker-compose 用于部署。
我有一个用于上传文件的端点。当我上传文件应用程序时,将其保存在 "files" 文件夹中(文件文件夹位于项目的根目录中)。当容器重新启动时,我不想丢失文件,所以我创建了一个名为 "myfiles" 的卷并将其安装到“/files”路径。
但是当我检查 myfiles 卷路径时,我没有看到 api 创建的任何文件。如果我重新启动容器,上传的文件就会消失。
这是我的 docker-compose.yaml 文件 api
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