CodeGym /행동 /Docker SELF /실행 중인 컨테이너에 연결

실행 중인 컨테이너에 연결

Docker SELF
레벨 11 , 레슨 4
사용 가능

5.1 docker exec 명령어 기본

docker exec 명령어는 실행 중인 컨테이너와 상호작용하기 위한 도구야. 이걸로 컨테이너 안에서 명령을 실행하거나 인터랙티브 세션을 열 수 있어. 관리 작업, 디버깅, 모니터링 등에 유용하지. 이번 강의에서는 docker exec 명령어를 어떻게 사용하는지, 어떤 옵션들이 있는지, 그리고 실용적인 사용 예제를 살펴볼게.

docker exec 명령어는 실행 중인 컨테이너 안에서 명령어를 실행할 때 사용돼. 이걸로 컨테이너에 접속해서, 마치 서버에서 직접 작업하는 것처럼 다룰 수 있어.

문법


docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

여기서:

  • CONTAINER: 들어가고 싶은 컨테이너의 이름이나 ID.
  • COMMAND: 컨테이너 안에서 실행하고 싶은 명령어.
  • ARG...: 명령어의 인자들.

기본 사용 예제

이 예제에서는 my_container 컨테이너 안에서 ls /app 명령어를 실행해. 이걸로 컨테이너 안의 /app 디렉토리 내용을 볼 수 있을 거야.

터미널


docker exec my_container ls /app

5.2 docker exec 명령의 매개변수

docker exec 명령은 컨테이너 내부에서 명령 실행을 설정할 수 있는 몇 가지 옵션을 지원해.

1. 대화형 세션 열기

대화형 세션을 시작하려면 -i (interactive)랑 -t (pseudo-TTY) 옵션 조합을 사용해.

Terminal


docker exec -it my_container /bin/bash 

이 예제에서는 my_container 컨테이너 안에서 대화형 Bash 터미널이 열릴 거야. 이걸로 실시간으로 명령어를 실행할 수 있어.

2. 비동기 모드에서 명령 실행

컨테이너 안에서 명령을 실행하고 완료를 기다리지 않으려면 -d (detached mode) 옵션을 쓸 수 있어.

Terminal


docker exec -d my_container touch /app/newfile.txt

이 예제에서 명령은 /app 디렉토리 안에 newfile.txt라는 빈 파일을 만들어. 명령어가 끝나길 기다리지 않고 터미널 제어가 즉시 반환돼.

3. 사용자 환경 설정

-e 매개변수를 사용해서 컨테이너에 환경 변수를 전달할 수 있어.

Terminal

docker exec -e MY_VAR=value my_container env

이 예제는 환경 변수 MY_VAR를 컨테이너에 전달하고 env 명령을 실행해서 컨테이너 내부의 모든 환경 변수를 보여줄 거야.

5.3 사용 예제

예제 1: 컨테이너 내 실행 중인 프로세스 보기

이 예제는 my_container 컨테이너 내부에서 ps aux 명령을 실행하고 실행 중인 모든 프로세스 목록을 보여준다.

터미널
docker exec my_container ps aux

예제 2: 컨테이너 내 서비스 상태 확인

이 예제는 my_container 컨테이너 내부에서 service nginx status 명령을 실행하고 nginx 서비스 상태를 보여준다.

터미널
docker exec my_container service nginx status

예제 3: 컨테이너 내 패키지 설치

이 예제는 패키지 목록을 업데이트하고 my_container 컨테이너 내부에서 vim 편집기를 설치한다.

터미널
docker exec my_container apt-get update && apt-get install -y vim

5.4 실습 시나리오

1. 컨테이너 관리

docker exec 명령어는 관리자가 컨테이너 내부에서 유지 보수 작업을 수행할 수 있게 해줘: 설정 파일 편집, 로그 확인 또는 파일 접근 권한 변경 등이 가능해.

Terminal
docker exec -it my_container vim /etc/nginx/nginx.conf

2. 애플리케이션 디버깅

애플리케이션 개발 및 테스트 시 docker exec 명령어는 개발자들이 애플리케이션 상태를 확인하고, 디버깅하며 오류를 분석하는 데 도움을 줘.

Terminal
docker exec -it my_container python /app/scripts/debug.py

3. 모니터링과 진단

docker exec를 사용하면 진단 명령어를 실행하고 컨테이너 상태를 추적할 수 있어: 리소스 사용량 확인, 네트워크 연결 및 기타 메트릭 등을 볼 수 있어.

Terminal
docker exec my_container top

이 명령어는 my_container 컨테이너 내부에서 top 유틸리티를 실행하고 현재 리소스 사용 상태를 보여줘.

5.5 추가 권장 사항

1. 보안 확보

docker exec 명령어를 사용할 때는 보안을 준수하는 게 중요해. 컨테이너에 대한 접근 권한이 제한되고, 승인된 사용자만 컨테이너 내부에서 명령어를 실행할 수 있는지 확인해봐.

2. 작업 자동화

스크립트를 사용해서 docker exec 명령어를 이용한 반복 작업을 자동화할 수 있어. 이렇게 하면 복잡한 워크플로우를 만들고 컨테이너 관리 작업을 자동화할 수 있어.

Terminal
#!/bin/bash
for container in $(docker ps -q); do
 docker exec $container uptime
done

이 스크립트는 모든 실행 중인 컨테이너에서 uptime 명령어를 실행하고, 실행 시간을 출력할 거야.

3. 로그와 디버깅

때로는 명령어 실행이 오류로 끝날 수도 있어. 이런 경우, 컨테이너 로그를 확인해서 원인을 찾는 게 유용해.

Terminal
docker logs my_container
1
Опрос
첫 번째 컨테이너 만들기,  11 уровень,  4 лекция
недоступен
첫 번째 컨테이너 만들기
첫 번째 컨테이너 만들기
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION