2016-11-01 2 views
0

나는 도커가 처음이므로 간단한 조각이 누락 될 수 있습니다. 여기에 내 시나리오가있다. 컨테이너 'docker run -it 우분투 : 14.04'를 시작했습니다. 그런 다음 Ctrl + P + Q를 사용하여 컨테이너가 계속 실행되도록 종료했습니다. 나는 docker ps로 확인하고 컨테이너가 작동하는 것을 보았습니다. 그런 다음 다시 'docker exec -it bash'라는 컨테이너에 입력했습니다. 이것은 나를 컨테이너로 다시 데려 갔다. 이제 'exit'명령을 입력하면 컨테이너 밖으로 나옵니다. 그러나 컨테이너는 여전히 실행 모드입니다. 일반적으로 exit 명령을 사용하면 컨테이너가 중지됩니다. 왜 이런 일이 일어나는 지 아십니까?종료 명령 후에도 Docker 컨테이너가 실행 중임을 나타냅니다.

답변

2

컨테이너의 실행 상태는 /와 함께 생성 된 초기 프로세스와 관련이 있습니다.

docker run을 입력하면 몇 가지 과정이 포함 된 새 컨테이너가 만들어집니다. 해당 프로세스가 종료되면 전체 컨테이너가 중지됩니다. 초기 프로세스가 bash이고 사용자가 exit 인 경우 컨테이너 자체가 종료됩니다.

docker exec은 실행중인 컨테이너 내부에서 새 프로세스를 시작합니다. 해당 프로세스가 종료되면 컨테이너는 계속 실행됩니다.

bash 쉘에 exit을 입력하면 쉘이 종료됩니다. 호스트 OS에서 하나의 터미널 창을 닫아도 다른 프로세스에는 영향을주지 않는 것처럼 동일한 컨테이너 내부에서 실행되는 다른 프로세스에는 영향을 미치지 않습니다.

+0

응답 해 주셔서 감사합니다. –

0

케이스에 exit 명령을 사용하면 컨테이너가 /bin/bash/ 실행 파일 만 중지합니다. 아마도 NGINX 또는 Apache와 같은 다른 응용 프로그램이 컨테이너 내부에서 실행 중이며 종료되지 않습니다.

관련 문제