Как я могу управлять докером с помощью скрипта Python - PullRequest
0 голосов
/ 28 февраля 2019

Например, файл python example.py:

import os

containerId = "XXX"
command = "docker exec -ti " + containerId + "sh"
os.system(command)

, когда я запускаю этот файл, используя "python example.py", я могу войти в контейнер Docker, но я хочу выполнить некоторые другие команды внутридокер.

Я пробовал это:

import os

containerId = "XXX"
command = "docker exec -ti " + containerId + "sh"
os.system(command)
os.system("ps")

, но ps выполняется только вне докера после того, как я выйду из контейнера докера, он не может быть выполнен внутри докера.

поэтому мой вопрос заключается в том, как выполнить команды внутри контейнера Docker с помощью оболочки Python.

Кстати, я использую python2.7.Большое спасибо.

1 Ответ

0 голосов
/ 28 февраля 2019

Если команды, которые вы хотите выполнить, можно легко определить заранее, то вы можете присоединить их к команде 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...