docker运行<IMAGE> <MULTIPLE COMMANDS>
我试图运行这样的MULTIPLE命令。
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)
但是这些都不起作用。
我已经search了Docker运行参考,但没有find有关ESCAPE字符的任何提示。
要在docker中运行多个命令,请使用/bin/bash -c
和分号;
docker run image /bin/bash -c "cd /path/to/somewhere; python a.py"
您可以通过以下几种方式来做到这一点:
-
使用-w选项来更改工作目录:
-w,–workdir =“”容器内的工作目录
https://docs.docker.com/engine/reference/commandline/run/#set-working-directory–w
-
将整个parameter passing给/ bin / bash:
docker run image /bin/bash -c "cd /path/to/somewhere; python a.py"
你也可以在Doker容器中使用pipe道命令bash -c "<command1> | <command2>"
例如:
docker run img /bin/bash -c "ls -1 | wc -l"
但是,如果不在远程调用shell,输出将被redirect到本地terminal。
- django安装在ubuntu的runnung dockerfile失败
- 可以挂载音乐docker运行
- Laravel在Mac OS X上的Docker上
- 并非所有的服务都在注册机构的领事处注册
- 如何在Docker环境下使用Mysql启动Aerogear统一推送服务器
- docker独立模式
- 如何在Docker中configuration端口
- docker错误FATA 获取http:///var/run/docker.sock/v1.18/images/search?term =节点:拨号unix /var/run/docker.sock:没有这样的文件或目录
- Kubernetes – ReplicationController和永久磁盘