繁体   English   中英

终端命令在 docker 容器内运行,但同一命令未从本地计算机运行

[英]terminal command is running inside docker container but the same command is not running from local machine

以迭代方式运行 docker 容器

  • docker 容器中 cpp_test 目录中存在的文件:

    root@ad2d85985536:/usr/src/cpp_test#ls

    核心输入input.txt主test.cpp

  • 通过迭代 CLI 在 docker 容器内运行执行命令(c++ 文件):

    root@ad2d85985536:/usr/src/cpp_test#./main <input.txt>output1.txt

    root@ad2d85985536:/usr/src/cpp_test#ls

    核心输入input.txt main output1.txt test.cpp

如您所见,output1.txt 文件已创建。

  • 但是,如果我使用 docker exec 命令从我的本地计算机终端运行相同的命令,我的执行将不起作用。 如下所示:

    ┌──(legion㉿kali)-[~/dev/OJ/docker] └─$ docker exec --workdir /usr/src/cpp_test checker./main.exe < input.txt > output1.txt

    zsh: 没有那个文件或目录: input.txt

我收到错误消息,因为不存在此类文件。 但是当我尝试使用相同的 docker exec 命令访问 input.txt 文件时,我可以毫无问题地访问它。

请帮忙!!!

这就是一个命令行吗? 您是将输入从 input.txt 重定向到 docker 命令吗? 这可能不是您想要的,因为 input.txt 位于容器内。 您是否包含引号以便输入和 output 重定向成为命令的一部分?

如所写,该命令类似于:

docker < input.txt ... a bunch of options ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM