我的Docker命令是:
docker run --rm wappalyzer/cli https://wappalyzer.com
当我运行python脚本时:
#!/usr/bin/python
from subprocess import call
import json
import os
import docker
docker run --rm wappalyzer/cli "MYURL"
上面写着
File "t.py", line 7
docker run --rm wappalyzer/cli "MYURL"
^
SyntaxError: invalid syntax
我的操作系统是ubuntu14.04,我正在使用ubuntu终端。
5条答案
按热度按时间g6ll5ycj1#
正如@AndyShinn所说,Python不是一种shell语言,但是你可以像运行shell命令一样调用docker:
使用这种方法,您不需要导入Docker。
bvn4nwqk2#
这不是有效的Python代码。如果你只是想运行一个容器并将一个命令作为参数传递,你可以这样做:
但是如果你想了解Python和运行Python进程的话,你应该多读一些。Python不是一种shell语言,你不能只使用shell命令内联。
tzxcd3kk3#
您可以使用名为
docker
的pip包并使用它来连接到Docker。在subProcess中运行命令与此解决方案的区别在于格式。您可以管理映像、容器以及CLI所能执行的所有操作。点击此处查看:https://docker-py.readthedocs.io/en/stable/
样品:
所有代码示例都可以在我提到的源URL中找到。
vsnjm48y4#
更新日期:2021年3月22日
我们现在有了python-on-whales一个Python的Docker客户端,可以在Linux、macOS和Windows上运行,适用于Python 3.7及以上版本。
n3schb8v5#
this answer的边缘情况和参数化如下。
使用
subprocess.run
也比使用subprocess.call
更好