【问题标题】:The file cannot be accessed in the docker container无法在 docker 容器中访问该文件
【发布时间】:2021-11-23 03:05:40
【问题描述】:

我使用 docker 映像创建了容器。并将目录挂载到其中。但是后来发现忘记了一个目录A,我现在把这个目录A复制到宿主机上挂载的目录下,希望能在容器中访问。 在容器中可以看到这个目录A。但无法访问。

root@6ab9b803ae14:~/chipyard/sims/verilator/workDir/unicore-toolchains/uc4-1.0.5-hard/bin# ls
unicore32-linux-addr2line  unicore32-linux-c++filt  unicore32-linux-gcc-4.4.2  unicore32-linux-gprof    unicore32-linux-objdump  unicore32-linux-strings
unicore32-linux-ar         unicore32-linux-cpp      unicore32-linux-gccbug     unicore32-linux-ld       unicore32-linux-ranlib   unicore32-linux-strip
unicore32-linux-as         unicore32-linux-g++      unicore32-linux-gcov       unicore32-linux-nm       unicore32-linux-readelf
unicore32-linux-c++        unicore32-linux-gcc      unicore32-linux-gfortran   unicore32-linux-objcopy  unicore32-linux-size
root@6ab9b803ae14:~/chipyard/sims/verilator/workDir/unicore-toolchains/uc4-1.0.5-hard/bin# ./unicore32-linux-gcc
bash: ./unicore32-linux-gcc: No such file or directory
root@6ab9b803ae14:~/chipyard/sims/verilator/workDir/unicore-toolchains/uc4-1.0.5-hard/bin#

为什么是这样? 谢谢!

【问题讨论】:

    标签: docker containers


    【解决方案1】:

    检查ldd 的依赖项(在容器中)。如果它们在您的容器中不可用,则会显示该错误。 如果您尝试在 64 位操作系统上运行 32 位,您将需要一个用于 ldd 的库,具体取决于您的(容器-)操作系统。例如ia32-libslib32z1

    应该是这样的:

    ldd x86_64-linux-gnu-gcc
            linux-vdso.so.1 (0x00007fff2afbd000)
            libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f68b7078000)
            /lib64/ld-linux-x86-64.so.2 (0x00007f68b7276000)
    

    如果它显示 not found 你必须安装它..

    【讨论】:

    • 谢谢!我尝试了这个命令并添加了相关信息。
    • 文件说什么 .\unicore...
    • ./unicore... 会出现“No such file or directory”
    • 抱歉在移动设备上。我的意思是在主机操作系统中输入file ./unicore32-linux-gcc
    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 2018-08-09
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多