Python cli에서 컨테이너 셸을 종료하는 방법

Python cli에서 컨테이너 셸을 종료하는 방법

저는 컨테이너에서 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 exec컨테이너를 입력한 후 bash위 코드를 실행하면 다음과 같이 출력됩니다.

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컨테이너 셸로 돌아갑니다.

quitPython 프롬프트를 종료하고 Docker 호스트(컨테이너가 아님)로 직접 돌아가는 입력을 원합니다 .

답변1

exec런타임에 이것을 사용할 수 있습니다 python3.

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

그러면 실행 중인 쉘이 스크립트 실행으로 대체됩니다 python3. 프로세스가 종료 되면 python3더 이상 쉘이 없으므로 docker exec종료됩니다.

관련 정보