0

という名前の Docker コンテナ内にシェル スクリプトがありますtest.sh。このスクリプトの出力をファイルにパイプしたいと思います。コマンドを使用するか、(を使用して)docker execシェルにログインしてを実行することで、これを行うことができます。ただし、Python 用の docker sdk を使用して同じ結果を得る方法を知りたいです。これまでの私のコードは次のとおりです。docker run -it./test.sh > test.txt

import docker

client = docker.APIClient(base_url='unix://var/run/docker.sock')

container= client.create_container(
'ubuntu:16.04', '/bin/bash', stdin_open=True, tty=True, working_dir='/home/psr', \
volumes=['/home/psr/data'], \
host_config=client.create_host_config(binds={
    '/home/xxxx/data_generator/data/': {
        'bind': '/home/psr/data',
        'mode': 'rw',
    },

})
)


client.start(container=container.get('Id'))
cmds= './test.sh > test.txt'
exe=client.exec_create(container=container.get('Id'), cmd= cmds, 
stdout=True)
exe_start=client.exec_start(exec_id=exe, stream=True)

for val in exe_start:
    print (val)

docker sdk の低レベル API を使用しています。高レベル API を使用して上記と同じ結果を得る方法を知っている場合は、お知らせください。

4

1 に答える 1