本篇博客将介绍在使用docker API时,如何监管container的PTY实现交互
问题引入
docker官方已经提供了API用来管理client,container,image,network等,基本的操作覆盖了docker CLI相关功能,但docker的API现在只能使用exec_run来执行一条命令,中间无法进行交互,希望能有一个类似于-it
的方式来完成交互操作。
经过几天的学习和测试,发现其实docker的containers.run()
和containers.exec_run()
都是可以设置stdin=True
, tty=True
。但开启这些之后,将返回一个socket,需要自己来进行处理。
google大法后,找到了一个dockerpty的python lib,可以完成这件事情