我有一个python函数来读取一个特定的docker容器日志。
首先,我尝试获取容器ID,如下所示
def test_1():
logging.info("Test debug logs")
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.18.18.10', username='usr1', password='pwd1')
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command('sudo docker ps -aqf "name=container1"')
container_id = ssh_stdout.read().decode("utf-8").replace('\n', '')
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(f'sudo docker logs -f {container_id} --since 4m')
container_logs = ssh_stdout.read()
ssh.close()
我可以很好地获取 container_id。但是我没有获取 container_logs。当我尝试检索日志时,执行仍在继续。
无论如何,从技术上讲,我也可以通过容器名称读取Docker日志。但我需要知道为什么我第二次无法读取输出。
1条答案
按热度按时间slmsl1lt1#
docker命令将继续等待,因为它被执行以显示实时日志。
要解决这个问题,我需要做如下
需要从命令中删除“-f”,这样它就不会一直保留。