무엇이 궁금했니
it옵션을 주지 않고 도커 컨테이너를 실행하게 되면 컨테이너가 바로 종료되는 것을 알 수 있다.
이는 컨테이너에서 더 이상 실행할 프로세스가 없다고 판단하기 때문에 종료되는 것이다. 더 정확히는 본인이 실행할 명령은 다 수행했다는 판단인 것이다.
우분투 이미지를 기준으로 별다른 옵션 없이 run 명령어를 사용하면
기본적으로 /bin/bash가 실행되는 것으로 알고 있는데, 그렇다면 bash 쉘이 실행이 되야 하는게 아닐까?
왜 -it(정확히는 i)옵션이 있을때 종료가 되지 않는 것일까?!
i옵션의 역할
docker run [이미지]
C
복사
해당 명령어가 진행되면 컨테이너는 해당 명령어를 수행하고 그 역할을 다 했다고 볼 수 있다.
위의 상황에서처럼 test_ls라는 이름을 가진 컨테이너를 ls명령어로 우분투 이미지로 실행을 하게 되면 명령어의 결과를 출력하고 컨테이너를 종료되는 것을 알 수 있다.
이처럼, 명령어를 실행하고 그 역할을 다 하면 컨테이너가 종료되는 것을 확인할 수 있다.
결국 -i옵션이 없이 실행을 하게 되면 bin/bash는 실행이 되지만 입력을 받을 수 있는 상황이 아니기 때문에 컨테이너가 종료되는 것이다.