3

我想用 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'

如何解决这个问题?

4

1 回答 1

4

from_env方法返回一个 DockerClient 对象(此处的文档)。

需要先获取容器,然后使用exec_run方法。如果要访问正在运行的容器,则需要以下内容:

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

现在您可以在容器中运行命令:

container.exec_run('your command here')
于 2020-03-30T22:49:11.273 回答