如上图所示,upload目录使用了软连接,并且权限都加上了,但是cd upload报错 No such file or directory,请问是什么问题?
如上图所示,upload目录使用了软连接,并且权限都加上了,但是cd upload报错 No such file or directory,请问是什么问题?
我也遇到了同样的问题,找到原因了,是因为docker容器误以为软连接指向的文件是容器内的文件,而在外部宿主机bash下创建的软连接实际指向宿主机的目录,应该在docker-compose.yml文件volumes中把宿主机软连接目录也映射上
volumes:
- /data/maccms/cms2:/data/wwwroot
- /data/maccms/cms2/upload:/data/maccms/cms2/upload # 新增宿主机软连接的映射
5 回答8k 阅读✓ 已解决
6 回答3.7k 阅读
2 回答4.3k 阅读✓ 已解决
2 回答3.5k 阅读✓ 已解决
3 回答3.2k 阅读
4 回答2.2k 阅读
2 回答3.6k 阅读
为了每个问题都有一个回答,问题解决了我把过程贴上。
kumfo:首先你
cd /data/maccms/cms/upload
看看能进去吗夜之子:@kumfo 忘记说了,这是在docker容器内访问的,无法进入upload目录,但是如果在外部宿主机上访问,是可以进入upload的,按理说权限都加了,在docker容器内应该也是可以访问的才对。。。
cd /data/maccms/cms/upload
是可以进入的kumfo:@夜之子 你主机的这个目录挂载到docker了吗?
夜之子:@kumfo 挂载的是upload父层目录
kumfo:@夜之子 那应该没问题,另外就是刚才我说的,你在docker里能直接进入到这个目录吗?
夜之子:@kumfo 哦,docker竟然能进入
/data/maccms/cms/upload
,可我挂载的应该是upload才对kumfo:@夜之子 那就是你的问题了😂
夜之子:@kumfo docker挂载的是
/upload
,软链接到/data/maccms/cms/upload
,但是docker
内/upload
无法访问,而/data/maccms/cms/upload
却能访问到,这个要怎么处理才能让实际挂载到/upload呢?kumfo:@夜之子 你的
docker
目录挂载语句发一下看看?夜之子:
我这个很简单,upload就放在/data/wwwroot目录下
kumfo:@夜之子 你都挂载到 docker 的/data/wwwroot 了,那么你要访问的话,在docker里直接cd /data/wwwroot就可以了呀,你在 docker 里也只能访问主机目录的 /data/maccms/cms2目录。
夜之子:@kumfo 非常感谢,我把软链接删除了,单独对/upload进行了挂载到实际的目录,问题解决了。再次感谢!
kumfo:@夜之子 我也只是站在外人的角度和你讨论,然后顺带帮你理清了思路,其实没啥的,问题解决了就行。