You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让本地目录文件在运行的angr Docker容器中正常访问?

解决angr Docker容器无法访问本地挂载文件的问题

咱们一步步拆解你遇到的问题,核心是Docker卷挂载没正确生效,导致容器里找不到本地文件:

1. 先修正挂载命令的路径写法

你用的$pwd在sudo环境下可能出问题——因为sudo会重置部分环境变量,$pwd不一定指向你当前的用户目录。更可靠的写法是用$(pwd)或者直接写绝对路径:

sudo docker run -it --rm -v $(pwd):/local angr/angr

如果还是不行,试试用realpath确保路径是绝对的:

sudo docker run -it --rm -v $(realpath .):/local angr/angr

2. 先验证挂载是否生效

进入容器后别着急跑angr代码,先检查/local目录里有没有文件:

ls /local

如果看不到你本地的impossible_password.bin等文件,说明挂载确实失败了,回到第一步确认路径是否正确;如果能看到,那就是权限或者代码路径的问题。

3. 解决权限访问问题

本地目录的权限可能限制了容器内的angr用户读取。你可以二选一:

  • 临时给本地目录加读权限:
    chmod o+r .
    
  • 用你当前用户的UID/GID运行容器,确保权限完全匹配:
    sudo docker run -it --rm -v $(pwd):/local --user $(id -u):$(id -g) angr/angr
    

4. 修正angr代码里的文件路径

确认挂载生效后,代码里的路径必须指向/local下的文件,而不是根目录:

import angr
# 正确路径是/local/xxx,不是/xxx
proj = angr.Project("/local/impossible_password.bin")

额外排查点

如果本地目录路径里有特殊字符(比如空格),要给路径加引号:

sudo docker run -it --rm -v "$(pwd)":/local angr/angr

内容的提问来源于stack exchange,提问作者partyTuringFriend

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:47:44