获取'/bin/sh:1:使用Python和Flask将用户添加到Docker容器时出现“docker:not found”错误

m4pnthwp  于 2023-05-28  发布在  Docker
关注(0)|答案(1)|浏览(311)

我遇到了一个Flask脚本的问题,它包含:
useradd_cmd = F'docker exec -it {container_name} /usr/sbin/useradd -m -s /bin/bash -p $(openssl passwd -1 {password}) {username}' subprocess.call(useradd_cmd, shell=True) #run a command to add a user to the container
我想在容器中动态创建一个用户,但是,当它执行时,我有同样的错误:
/bin/sh: 1: docker: not found
我试图指定“可执行文件=/bin/bash”,但同样的错误(而不是“sh”,“bash”)
如何在Python脚本中执行此命令?
谢谢你
编辑:对的,伙计们,我只是一个大笨蛋菜鸟!我刚刚意识到我的Flask应用程序是在一个容器中,所以它不能工作!抱歉...

2uluyalo

2uluyalo1#

进入您通常运行docker命令的终端,然后运行:

type docker

它将告诉您在与docker交互时shell实际运行的完整路径。
subprocess.call()中使用完整路径,或者更好的是,按照documentation的建议使用subprocess.run()

相关问题