어제 오늘 내일

[docker] docker attach 명령어 사용법과 예제 본문

IT/Docker

[docker] docker attach 명령어 사용법과 예제

hi.anna 2025. 10. 12. 07:44

1. docker attach 개요

docker attach 명령어는 이미 실행 중인 컨테이너의 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)에 현재 터미널을 연결하는 기능을 제공합니다. 이를 통해 컨테이너 내부 애플리케이션의 실행 결과를 실시간으로 확인하거나 직접 상호작용할 수 있습니다.

보통 컨테이너를 실행할 때 docker run -it을 사용하면 바로 터미널이 연결되지만, 백그라운드에서 실행 중인 컨테이너에 다시 접속해야 할 경우 docker attach를 활용합니다.

 

2. 기본 사용법

docker attach [OPTIONS] <container_id_or_name>
  • <container_id_or_name> : 접속할 컨테이너의 ID 또는 이름
  • 주요 옵션
    • --detach-keys : 터미널에서 컨테이너 연결을 종료할 때 사용할 키 조합 지정
    • --no-stdin : 표준 입력을 비활성화하고 출력만 확인
    • --sig-proxy : 로컬에서 발생하는 신호(Ctrl+C 등)를 컨테이너로 전달 여부 (기본 true)

 

3. 실행 중인 컨테이너에 연결

# 실행 중인 컨테이너 확인
docker ps

# 컨테이너에 attach
docker attach my_container

이 명령을 실행하면 my_container에서 실행 중인 프로세스의 로그나 출력이 현재 터미널에 표시됩니다.

 

 

4. detach(분리) 방법

기본적으로 docker attach로 접속한 상태에서 단축키를 사용해 세션을 종료하고 싶을 때는 detach-keys 옵션을 설정하는 것이 가장 안전합니다.

예:

docker attach --detach-keys="ctrl-]" my_container

이제 Ctrl+]를 누르면 세션이 종료되고, 컨테이너는 계속 실행됩니다.

 

 

5. 실습 예제

아래는 알파인 리눅스 컨테이너에서 반복 출력되는 메시지를 확인하는 예제입니다.

# 2초마다 Hello Docker 출력
docker run -dit --name testapp alpine sh -c "while true; do echo 'Hello Docker'; sleep 2; done"

# 컨테이너에 attach
docker attach --detach-keys="ctrl-]" testapp

실행 결과 예시:

Hello Docker
Hello Docker
Hello Docker
...

Ctrl+] 입력 시 세션만 종료되고, 컨테이너는 백그라운드에서 계속 실행됩니다.

 

 

6. 정리

  • docker attach는 실행 중인 컨테이너의 메인 프로세스와 터미널을 직접 연결
  • 로그 확인, 실행 결과 모니터링, 상호작용이 가능
  • 안전하게 분리하려면 --detach-keys 옵션으로 자신에게 맞는 단축키를 지정하는 것이 좋음

 

 

반응형
Comments