标签: python-docker

如何使用docker-py获取容器日志文件

作为 docker 自动化的一部分,我尝试使用 python docker 包来自动化某些 docker 操作。好吧,我已经成功实现了大部分要求,但找不到等效的方法

docker logs <container-id>
Run Code Online (Sandbox Code Playgroud)

我的实现:

import docker
client = docker.APIClient()
client.attach(container, stdout=True, stderr=True, stream=False, logs=True, demux=False)
Run Code Online (Sandbox Code Playgroud)

然而它并没有给出预期的结果。请帮助我找出实施中缺少的内容。预先感谢您回答这个问题

#更新

import docker
z=docker.from_env()
dkg = z.containers.get('<container_id>').logs(stream = True, follow = False, tail =10)
while True:
    line = next(dkg).decode("utf-8")
    print(line)
Run Code Online (Sandbox Code Playgroud)

好吧,我已经通过参考链接将我的实现替换为上面的实现。尽管添加 tail 选项后它不起作用。添加 tail 命令时,它显示空白,没有任何错误。有关获得尾部结果的任何提示

containers docker docker-logs python-docker

5
推荐指数
0
解决办法
2461
查看次数

如何在 python docker sdk 中使用 exec_run 来替换我的 docker cli 命令

我想用 docker python sdk 替换下面的命令

docker exec 6d9c9b679541 /u01/app/oracle/product/12.0.0/dbhome_1/bin/sqlplus sachin/sachin@orcl @1.sql
Run Code Online (Sandbox Code Playgroud)

这是我正在编写的代码以及我使用 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'
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

docker python-docker

4
推荐指数
1
解决办法
6792
查看次数

标签 统计

docker ×2

python-docker ×2

containers ×1

docker-logs ×1