我有一个Python脚本在我的Docker容器中需要执行,但同时我也需要在容器创建后进行交互式访问(使用/bin/bash)。
我希望能够创建我的容器,执行我的脚本并且在容器内部查看发生的更改/结果(无需手动执行我的Python脚本)。
目前我面临的问题是,如果我在Docker文件中使用CMD或ENTRYPOINT命令,我将无法重新进入已创建的容器。我尝试使用docker start和docker attach,但是我遇到了错误:
理想情况下,应该接近这样:
假设我的Python脚本包含以下内容(与其功能无关,在这种情况下,它只是创建一个带有文本的新文件):
当我创建容器时,我希望我的脚本能够执行,并且我想能够查看文件的内容。因此,类似以下的方式:
```bash docker run myimage sh -c "my_script.sh && cat my_file.txt" ```
请注意保留HTML标签。
在上面的示例中,我的Python脚本将在创建容器时执行,以生成新文件newfile.txt。这正是我所需要的。
我希望能够创建我的容器,执行我的脚本并且在容器内部查看发生的更改/结果(无需手动执行我的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')
当我创建容器时,我希望我的脚本能够执行,并且我想能够查看文件的内容。因此,类似以下的方式:
```bash docker run myimage sh -c "my_script.sh && cat my_file.txt" ```
请注意保留HTML标签。
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。这正是我所需要的。