【发布时间】:2014-09-25 22:02:27
【问题描述】:
我的 docker 容器中有一个 Python 脚本需要执行,但我还需要在容器创建后对它进行交互式访问(使用 /bin/bash )。
我希望能够创建我的容器,执行我的脚本并在容器内查看发生的更改/结果(无需手动执行我的 python 脚本)。
我当前面临的问题是,如果我在 docker 文件中使用 CMD 或 ENTRYPOINT 命令,则一旦创建容器,我将无法返回容器。我尝试使用 docker start 和 docker attach 但出现错误:
sudo docker start containerID
sudo docker attach containerID
"You cannot attach to a stepped container, start it first"
理想情况下,接近这个:
sudo docker run -i -t image /bin/bash python myscript.py
假设我的 python 脚本包含类似的东西(这与它的作用无关,在这种情况下它只是创建一个带有文本的新文件):
open('newfile.txt','w').write('Created new file with text\n')
当我创建我的容器时,我希望我的脚本能够执行并且我希望能够看到文件的内容。所以像:
root@66bddaa892ed# sudo docker run -i -t image /bin/bash
bash4.1# ls
newfile.txt
bash4.1# cat newfile.txt
Created new file with text
bash4.1# exit
root@66bddaa892ed#
在上面的示例中,我的 python 脚本将在创建容器时执行以生成新文件 newfile.txt。这就是我需要的。
【问题讨论】:
-
我不确定您在这里问的是什么...您的
myscript.py在做什么?可以贴一下源码吗? -
结帐 nsenter。此处描述:jpetazzo.github.io/2014/06/23/docker-ssh-considered-evil
-
@jamesMills 我编辑了我的帖子并举例说明了我正在寻找的内容。
标签: python containers docker