Bash

如何從 python cli 退出容器外殼

  • July 15, 2020

我在容器中執行 python。

目標是在接收到輸入值後從正在執行的 python 程式碼中退出容器quit。我嘗試了以下程式碼:

import subprocess

def qq():
   while True:
       choice = ""
       choice = input("Type \"quit\" to exit container> ")
       if choice == 'quit':
           print("Exiting container")
           subprocess.call("exit", shell=True)
           break
       else:
           print("Invalid input.")

qq()

我進入容器後,執行上面的程式碼,輸出如下docker execbash

root@container:/pyScript#
root@container:/pyScript# python3 kwit.py
Type "quit" to exit container>
Invalid input.
Type "quit" to exit container> quit
Exiting container
root@container:/pyScript#
root@container:/pyScript#

現在,輸入quit將我帶回容器外殼。

我希望quit輸入退出我的 python 提示並直接帶我回到 docker 主機(而不是容器)

您可以exec在執行時使用python3

root@container:/pyScript# exec python3 kwit.py

這將用python3執行該腳本替換正在執行的 shell。當python3程序終止時,沒有更多的 shell,因此docker exec將終止。

引用自:https://unix.stackexchange.com/questions/598384