Если команды, которые вы хотите выполнить, можно легко определить заранее, то вы можете присоединить их к команде docker run
, например:
docker run --rm ubuntu:18.04 /bin/sh -c "ps"
Теперь, если у вас уже есть работающий контейнер, например
docker run -it --rm ubuntu:18.04 /bin/bash
Тогда вы можете сделать то же самое с docker exec
:
docker exec ${CONTAINER_ID} /bin/sh -c "ps"
Теперь, в python
это будет выглядеть примерно так:
import os
containerId = "XXX"
in_docker_command = "ps"
command = 'docker exec ' + containerId + ' /bin/sh -c "' + in_docker_command + '"'
os.system(command)
Это решение полезно, если вы не хотите устанавливать внешнюю зависимость, такую как docker-py
, как предложено @ Szczad