Docker执行失败:“cd”:在$ PATH中找不到可执行文件

91
我使用了以下命令:
docker exec compassionate_mclean cd /root/python
返回的错误信息如下:

docker-exec:无法执行:exec:“cd”:在$PATH中找不到可执行文件

请帮我解决这个问题。

5个回答

190

cd是一个内置的shell命令,你不能将其设置为要运行的命令。你必须使用:

cd 是一個內建的 shell 命令,不能將它設定為要運行的命令。您必須使用:

docker exec -i compassionate_mclean bash -c "cd /root/python && python myscript.py"

如果你想查看输出结果,请确保添加-i标志,如上所示。但是在这种情况下,你可以将Python运行作为入口点:

docker exec -i compassionate_mclean python /root/python/myscript.py

但是在执行此命令后,我需要运行位于该目录中的Python脚本。我该怎么做? - sabarish
但是我不能通过在本地框中使用Ctrl + C来停止脚本,对吧? 因为bash -c将运行另一个子shell,我无法在docker容器外部控制它。 - zx1986
我认为这里的-i是可选的。 - undefined

4

你不能这样做,你可以使用 docker exec -it my_container /bin/bash 命令进入交互式会话后执行多条命令,或者如果你只想创建文件可以使用 docker exec -d my_container touch myfile 命令,参见https://docs.docker.com/reference/commandline/cli/#examples_3中的示例。


3
你可以使用 'docker exec' 命令的 -w 选项,将工作文件夹设置为容器中的绝对路径。但你需要在每个 Docker 调用中都设置它!
例如:
docker exec -w /root/python compassionate_mclean python myscript.py

0
在我的情况下,我应该首先进入子文件夹,即我的celery文件所在的位置。然后运行以下命令。

-3
如果您执行docker容器exec --help,它将显示选项和执行命令的方法 用法:docker容器exec [OPTIONS] CONTAINER COMMAND [ARG ...]
您必须使用docker容器exec -it [container_name] bash
一旦进入bash,您就可以执行任何想要的命令。做CD不起作用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接