티스토리 뷰

728x90
반응형

Docker 컨테이너가 실행 중일 때 패키지를 추가 설치하거나 디버깅 등 컨테이너에서 직접 작업을 해야할 때가 있다.

이럴 때는 컨테이너의 쉘에 직접 접근하여 명령하는 방법을 사용할 수 있다.

1. 실행 중인 Docker 컨테이너 확인

  • 먼저 Docker에서 실행 중인 컨테이너 목록을 통해 접근하고 싶은 컨테이너 ID를 확인한다.
  • 아래 명령어는 현재 실행 중인 모든 컨테이너의 정보를 볼 수 있다.
docker ps
  • -a 옵션을 달면 정지된 컨테이너를 포함한 모든 컨테이너를 확인할 수 있다.

 

2. docker exec 명령어로 컨테이너 접근

  • docker exec 명령어를 통해 실행 중인 컨테이너의 쉘에 직접 접근할 수 있다.
  • 이 명령어를 사용하면 새 프로세스를 시작하여 컨테이너 내부에서 명령어를 실행한다.
  • 기본 명령어 형식
docker exec -it <container_id_or_name> <shell>
  • -i: 상호작용(interactive) 모드를 활성화하여 입력을 받을 수 있게 합니다.
  • -t: 가상 터미널을 활성화합니다.
  • <container_id_or_name>: 접근하고자 하는 컨테이너의 ID 또는 이름을 입력합니다.
  • <shell>: 실행할 쉘 유형을 지정합니다. 일반적으로 /bin/bash나 /bin/sh가 사용됩니다.

 

1) bash 쉘 접근

  • 컨테이너가 bash를 지원하는 경우 사용 가능하다.
docker exec -it <container_id_or_name> /bin/bash

2) sh 쉘 접근

  • sh만 지원하는 경우는 다음과 같이 사용 가능하다.
docker exec -it <container_id_or_name> /bin/sh

 

  • 컨테이너 내부에 진입하면 일반적인 리눅스 쉘과 같은 환경에서 명령어를 사용할 수 있다.
  • 여기서 필요한 파일을 수정하거나, 로그를 확인하거나, 환경 설정을 변경할 수 있다.

3) docker-compose exec 명령어로 bash 접근

docker-compose exec <yaml 파일 내 서비스 이름> bash

# app 컨테이너에 접근
docker-compose exec app bash
docker-compose exec app sh

 

3. 컨테이너 쉘 종료

  • 작업을 완료했다면, exit 명령어로 쉘을 종료하고 빠져나올 수 있다.
exit

728x90
반응형
댓글