SFTP Docker容器远程访问无法显示挂载文件问题求助
问题分析与解决方案
你的问题出在emberstack/sftp镜像的默认目录结构上:这个镜像创建的SFTP用户,默认根目录是/sftp/<username>(也就是/sftp/demo),而非你挂载的/sftp目录。所以容器内ls /sftp能看到内容,但SFTP客户端登录后进入的是/sftp/demo,自然看不到挂载的文件。
下面是两种解决方法:
方法一:修改挂载路径
直接把本地日志目录挂载到用户的默认根目录/sftp/demo,修改docker-compose.yml的volumes部分:
volumes: - ../wedofinance-backend/logs:/sftp/demo
修改后重启容器:
docker-compose down && docker-compose up -d
方法二:指定SFTP根目录
通过环境变量SFTP_ROOT强制设置用户根目录为/sftp,修改environment部分:
environment: - USERS=demo:demo:1001:1001 - SFTP_ROOT=/sftp
同样重启容器生效。
额外注意:权限检查
因为你指定了用户UID/GID为1001:1001,本地的../wedofinance-backend/logs目录需要确保该用户有权限访问,否则即使挂载正确,SFTP客户端也可能无法读取。在本地执行以下命令修复权限:
chown -R 1001:1001 ../wedofinance-backend/logs
完成以上操作后,重新用FileZilla/WinSCP连接,就能看到日志文件和文件夹了。
内容的提问来源于stack exchange,提问作者Kimi95
相关产品推荐
相关产品推荐

