如何在 python docker sdk 中使用 exec_run 来替换我的 docker cli 命令
How to use exec_run in python docker sdk for replacing my docker cli command
我想用 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'
如何解决这个问题?
from_env
方法 returns 一个 DockerClient 对象 (docs here)。
需要先获取容器,再使用exec_run
方法。
如果要访问 运行ning 容器,则需要以下内容:
container = client.containers.get('your_container_name_or_id')
现在您可以在容器中运行您的命令:
container.exec_run('your command here')
我想用 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'
如何解决这个问题?
from_env
方法 returns 一个 DockerClient 对象 (docs here)。
需要先获取容器,再使用exec_run
方法。
如果要访问 运行ning 容器,则需要以下内容:
container = client.containers.get('your_container_name_or_id')
现在您可以在容器中运行您的命令:
container.exec_run('your command here')