Я пытаюсь воспроизвести эту команду с помощью Python SDK.
Я могу успешно запустить эту команду на моем сервере, чтобы запустить контейнер и получить результаты JSON через STDOUT.
sudo docker run -it --rm wpscanteam/wpscan --url test.local -e vp --plugins-detection mixed -f json --api-token xxxxxxxxxxxxxx
Пытаясь выполнить ту же задачу с помощью Python SDK, я получаю сообщение об ошибке:
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/dist-packages/docker/models/containers.py", line 832, in run
container, exit_status, command, image, out
docker.errors.ContainerError: Command '--url test.local -e vp --plugins-detection mixed -f json --api-token xxxxxxx' in image 'wpscanteam/wpscan' returned non-zero exit status 4
Мой python код:
import docker
client = docker.from_env()
client.containers.run(image='wpscanteam/wpscan', command="--url test.local -e vp --plugins-detection mixed -f json --api-token xxxxxxxxxxxxxxxx", auto_remove=True, tty=True)
что интересно, если я попробую ту же команду с помощью подпроцесса, я получу ту же ошибку:
import subprocess
batcmd="docker run -it --rm wpscanteam/wpscan --url test.local -e vp --plugins-detection mixed -f json --api-token xxxxxxxxxxx"
result = subprocess.check_output(batcmd, shell=True)