Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python docker sdk如何在containers.run中运行多个命令_Python_Docker_Backend_Devops_Dockerpy - Fatal编程技术网

python docker sdk如何在containers.run中运行多个命令

python docker sdk如何在containers.run中运行多个命令,python,docker,backend,devops,dockerpy,Python,Docker,Backend,Devops,Dockerpy,我正在使用python 3和docker sdk,并使用 containers.run以创建容器并运行我的代码 当我将命令参数与一个命令作为字符串一起使用时,效果很好 参见代码 client = docker.from_env() container = client.containers.run(image=image, command="echo 1") 当我尝试使用一系列命令时,根据文档,这些命令是可以使用的 client = docker.from_env() container =

我正在使用python 3和docker sdk,并使用 containers.run以创建容器并运行我的代码 当我将命令参数与一个命令作为字符串一起使用时,效果很好

参见代码

client = docker.from_env()
container = client.containers.run(image=image, command="echo 1")
当我尝试使用一系列命令时,根据文档,这些命令是可以使用的

client = docker.from_env()
container = client.containers.run(image=image, command=["echo 1", "echo 2"])
我得到了这个错误

OCI运行时创建失败:容器\u linux。转到:345:启动容器 进程导致执行:\echo 1 \:在$PATH中找不到可执行文件

当使用一个字符串时也会发生同样的情况

"echo 1; echo 2"
我正在使用Ubuntu19和docker

Docker版本18.09.9,版本1752eb3

它曾经可以很好地处理一系列命令,新版本的docker有什么问题吗,或者我在这里遗漏了什么

试试这个:

container = client.containers.run(image="alpine:latest", command=["/bin/sh", "-c", 'echo 1 && echo 2'])
试试这个:

container = client.containers.run(image="alpine:latest", command=["/bin/sh", "-c", 'echo 1 && echo 2'])
你可以用这个

client = docker.from_env()
container = client.containers.run(image=image, command='/bin/sh')
result = container.exec_run('echo 1')
result = container.exec_run('echo 2')
   
container.stop()
container.remove()
你可以用这个

client = docker.from_env()
container = client.containers.run(image=image, command='/bin/sh')
result = container.exec_run('echo 1')
result = container.exec_run('echo 2')
   
container.stop()
container.remove()

该命令接受字符串或列表,您可以同时传递字符串或列表。使用该字符串,您可以尝试client.containers.runalpine:latest,command='sh-c echo 1&&echo 2'该命令接受字符串或列表,您可以同时传递字符串或列表。使用这个字符串,您可以尝试client.containers.runalpine:latest,command='sh-c echo 1&&echo 2'我需要一种执行命令列表的方法,这是一个简单的问题示例,但我需要能够使用比echo更长的列表和更复杂的命令。。。API声明这应该是可能的,您可以发布一个完整的示例,说明如何将bin bash与who命令一起使用吗?whoami位于alpine image中的路径中,因此container=client.containers.runimage=alpine:latest,command=['whoami']将与whoami一起使用,但不与echo一起使用。。。我需要能够运行比whoami更高级的脚本。不幸的是,您需要创建一个脚本,并将其设置为图像中的命令。正如您通常在纯docker设置中所做的那样,我需要一种执行命令列表的方法,这是一个简单的问题示例,但我需要能够使用比echo更长的列表和更复杂的命令。。。API声明这应该是可能的,您可以发布一个完整的示例,说明如何将bin bash与who命令一起使用吗?whoami位于alpine image中的路径中,因此container=client.containers.runimage=alpine:latest,command=['whoami']将与whoami一起使用,但不与echo一起使用。。。我需要能够运行比whoami更高级的脚本。不幸的是,您需要创建一个脚本,并将其设置为图像中的命令。正如您通常在纯docker设置中所做的一样,欢迎使用SO!您可以通过一些解释来提高答案的质量。欢迎使用SO!你可以通过一些解释来提高答案的质量。