인프라/Docker
도커 명령어 (2)
정재익
2025. 7. 24. 03:53
OS껍데기를 실행시킬 때 예를들어 우분투
Docker run -dit ubuntu bash로 실행시키고
Docker attach 컨테이너id로 접근가능하다
OS안에 프로그램이 있는 이미지를 실행시킬 때 예를들어 톰캣
Docker run -d -p 8080:8080 tomcat으로 실행시키고
Docker exec -it 컨테이너id bash로 접근가능하다
그냥 모든 프로그램에 -dit를 붙이는게 편하다 어차피 it를 추가로 붙여도 모든 프로그램에 이상은 없긴때문 톰캣을 -dit로 실행시켜도 exec로 들어가야하는건 같다
톰캣은 메인 프로세스가 bash가 아니기 때문에 -dit를 해도 아무효과가없다 톰캣을 attach명령어로 못 들어가는 이기도하다
attach는 컨테이너의 메인프로세스에 붙는다 동작대상은 예를들어 /bin/bash가 있다
exec는 컨테이너 안에서 새 프로세스를 실행한다 동작대상은 별도 프로세스 예를들어 bash나 top이 있다
attach는 컨테이너의 로그를 실시간으로 볼 수있다 그리고 exit로 컨테이너가 종료될수있기 때문에 주의해야한다
exec는 컨테이너 안에서 새로운 bash를 실행하며 exit에도 컨테이너가 종료되지 않는다
보통 로그확인이나 디버깅시에 attach
에러분석 수정작업시 exec를 사용한다