포스트

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 라이센스를 따릅니다.