Docker #3 - 컨테이너 실행 모드 정리
Attached, Detached, Interactive 모드의 차이점과 활용법
Docker #3 - 컨테이너 실행 모드 정리
도커 컨테이너 3가지 실행 모드
도커 컨테이너를 실행할 때 사용하는 세 가지 핵심 모드에 대해 알아보자.
Attached 모드 (기본 모드)
docker run
의 기본 동작으로, 컨테이너를 실행하면 터미널이 해당 컨테이너의 입출력에 직접 연결된다.
- 특징:
- 컨테이너의 로그가 터미널에 실시간으로 출력된다
- 컨테이너가 종료되면 터미널도 함께 종료된다
- 해당 터미널로 다른 작업을 할 수 없다
- 사용 사례:
- 개발 도중 에러를 바로 확인하고 싶을 때
- 디버깅이 필요한 경우
- 일회성 작업을 실행할 때
1
2
3
4
# Attached 모드 (기본)
docker run nginx
# 로그가 터미널에 실시간 출력됨
Detached 모드 (-d)
-d
옵션을 사용하여 컨테이너를 백그라운드에서 실행한다.
- 특징:
- 컨테이너가 백그라운드에서 조용히 실행된다
- 터미널을 자유롭게 사용할 수 있다
- 컨테이너 ID가 출력되어 관리가 가능하다
- 사용 사례:
- 웹서버나 데이터베이스처럼 계속 켜져 있어야 하는 서비스
- 프로덕션 환경에서의 서비스 실행
- 여러 컨테이너를 동시에 관리할 때
1
2
3
4
5
# Detached 모드
docker run -d nginx
# 컨테이너 ID가 출력되고 터미널은 자유로움
# 예: 1a2b3c4d5e6f
Interactive 모드 (-it)
컨테이너와 직접 상호작용이 필요할 때 사용하는 옵션이다.
- 옵션 설명:
-i
: 컨테이너의 표준 입력(stdin)을 활성화-t
: 가상 터미널(tty)을 할당- 함께 사용하여 마치 컨테이너 안에서 직접 터미널을 쓰는 듯한 환경 제공
- 사용 사례:
- 컨테이너 내부의 쉘에 접속할 때
- 대화형 프로그램을 실행할 때
- 컨테이너 내부를 탐색하거나 디버깅할 때
1
2
3
4
5
# Interactive 모드
docker run -it ubuntu /bin/bash
# 컨테이너 내부의 bash 쉘에 접속
# exit 명령으로 나갈 수 있음
모드 조합 사용법
Detached + Interactive
1
2
3
# 백그라운드에서 실행하면서 필요시 접속
docker run -dit ubuntu /bin/bash
docker exec -it <container_id> /bin/bash
포트 매핑과 함께 사용
1
2
3
4
5
# 웹서버를 백그라운드에서 실행
docker run -d -p 8080:80 nginx
# 대화형으로 컨테이너 접속
docker run -it -p 3000:3000 node:18 /bin/bash
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.