저는 컨테이너에서 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
컨테이너 셸로 돌아갑니다.
quit
Python 프롬프트를 종료하고 Docker 호스트(컨테이너가 아님)로 직접 돌아가는 입력을 원합니다 .
답변1
exec
런타임에 이것을 사용할 수 있습니다 python3
.
root@container:/pyScript# exec python3 kwit.py
그러면 실행 중인 쉘이 스크립트 실행으로 대체됩니다 python3
. 프로세스가 종료 되면 python3
더 이상 쉘이 없으므로 docker exec
종료됩니다.