Как использовать exec_run в python docker sdk для замены моей команды docker cli - PullRequest
3 голосов
/ 28 марта 2020

Я хочу заменить приведенную ниже команду на docker python sdk

docker exec 6d9c9b679541 /u01/app/oracle/product/12.0.0/dbhome_1/bin/sqlplus sachin/sachin@orcl @1.sql

, вот код, который я пишу, и ошибка, которую я получаю, используя python3

>>> import docker
>>> client = docker.from_env()
>>> client.exec_run('6d9c9b679541',command='/u01/app/oracle/product/12.0.0/dbhome_1/bin/sqlplus sachin/sachin@orcl @1.sql')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/site-packages/docker/client.py", line 205, in __getattr__
    raise AttributeError(' '.join(s))
AttributeError: 'DockerClient' object has no attribute 'exec_run'

Как решить эту проблему?

1 Ответ

2 голосов
/ 31 марта 2020

Метод from_env возвращает объект DockerClient ( документы здесь ).

Сначала необходимо получить контейнер, а затем использовать метод exec_run. Если вы хотите получить доступ к работающему контейнеру, вам нужно следующее:

container = client.containers.get('your_container_name_or_id')

Теперь вы можете запустить свою команду в контейнере:

container.exec_run('your command here')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...