본문 바로가기
개발

docker 컨테이너의 프로세스 구조 간단히 알아보기

by 박호정94 2026. 8. 2.

docker 컨테이너를 실행하면 어떻게 동작할까요?
도커는 프로세스 격리를 위한 것이므로 프로세스가 어떻게 구성되는지 알아야 합니다.

하나의 도커 컨테이너는 메인 프로세스와 그 외의 프로세스로 구성됩니다. 즉, 메인 프로세스가 하나의 컨테이너를 대표하며 메인 프로세스를 기준으로 컨테이너의 상태가 판별됩니다. 

간단히 테스트하기 위해 ubuntu 이미지를 실행 해보겠습니다. docker run -it ubuntu 를 실행하면 /bin/bash 가 메인 프로세스(PID 1)로 실행됩니다. 실행된 터미널에서 ps aux를 실행해보면 다음과 같이 PID 1이 /bin/bash로 나오는 것을 확인할 수 있습니다.

exit로 종료한 후 docker ps 를 실행하면 실행 중인 컨테이너가 없는 것을 확인할 수 있습니다.

그럼 다음으로 docker run -it ubuntu 로 실행해서 다시 컨테이너를 띄웁니다. docker ps로 컨테이너 id를 확인한 뒤 다른 쉘을 켜서 docker exec -it <container-id> bash 로 실행합니다. 방금 실행한 bash 에서 ps aux를 실행해보면 다음처럼 PID가 1인 /bin/bash와 PID 9인 bash가 있는 것을 확인할 수 있습니다.

exit 명령어로 bash로 접속한 프로세스를 종료합니다. 

그다음 docker ps 로 컨테이너 상태를 조회해보면 컨테이너가 아직 실행 중임을 알 수 있습니다.

메인 프로세스에 해당되는 shell에서 exit을 한 뒤 docker ps를 해보면 컨테이너가 종료된 것을 확인할 수 있습니다.

 

이상으로 도커의 컨테이너에서 프로세스의 메인 프로세스가 무엇인지, 생각한대로 동작하는 것은 맞는지 확인 해보았습니다.