Portainer卷上传路径错误问题求助
Portainer卷浏览上传文件路径不符问题排查与解决
问题场景
使用Portainer CE 2.18.3,服务器配置:
/- 8GB系统盘/srv/docker- 50GB Docker数据盘
已通过/etc/docker/daemon.json修改Docker数据根目录为/srv/docker/images:
{ "data-root": "/srv/docker/images" }
Docker功能正常,通过Portainer创建的test_volume卷,Portainer显示挂载点为/srv/docker/images/volumes/test_volume/_data,主机端也能看到该目录。但使用Portainer卷浏览上传test.txt时,文件实际被写入/var/lib/docker/volumes/test_volume/_data/test.txt(默认路径),而非自定义数据目录。
解决办法
1. 修正Portainer容器挂载配置
Portainer运行时若仅挂载/var/run/docker.sock,容器内部默认读取的Docker数据目录仍是/var/lib/docker,导致上传路径错位。需将主机自定义数据目录挂载到容器内对应路径:
停止现有Portainer容器并重新启动:
docker stop portainer && docker rm portainer docker run -d -p 9000:9000 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /srv/docker/images:/var/lib/docker \ -v portainer_data:/data \ portainer/portainer-ce:2.18.3
此操作让Portainer容器内部的/var/lib/docker映射到主机的自定义数据目录,确保路径一致。
2. 验证Docker配置生效
确认Docker守护进程已加载新配置:
systemctl daemon-reload systemctl restart docker
执行以下命令检查当前数据根目录:
docker info | grep "Docker Root Dir"
输出应为/srv/docker/images,确保配置已生效。
3. 清理Portainer缓存(可选)
若上述操作无效,可能是Portainer缓存了旧配置,可清理Portainer的存储卷后重新启动:
docker stop portainer && docker rm portainer docker volume rm portainer_data # 重新启动Portainer容器(使用上述run命令)
内容的提问来源于stack exchange,提问作者fistameeny
相关产品推荐
相关产品推荐

