一尘不染

docker run

docker

我正在尝试运行多个这样的命令。

docker run image cd /path/to/somewhere && python a.py

但这给我“没有这样的文件或目录”错误,因为它被解释为…

"docker run image cd /path/to/somewhere" && "python a.py"

似乎需要一些ESCAPE字符,例如“”或()。

所以我也试过了

docker run image "cd /path/to/somewhere && python a.py"
docker run image (cd /path/to/somewhere && python a.py)

但是这些没有用。

我已经搜索了Docker Run
Reference,
但没有找到有关ESCAPE字符的任何提示。


阅读 306

收藏
2020-06-17

共1个答案

一尘不染

要在docker中运行多个命令,请使用/bin/bash -c和分号;

docker run image_name /bin/bash -c "cd /path/to/somewhere; python a.py"

如果仅在command1(cd)返回零(无错误)退出状态时需要执行command2(python)的情况下,请使用&&代替;

docker run image_name /bin/bash -c "cd /path/to/somewhere && python a.py"
2020-06-17