docker에서 grep 활용사례

권경희·2024년 12월 29일

grep은 Docker와 함께 사용하여 특정 정보를 검색하거나 필터링하는 데 유용합니다. Docker 명령어 출력에서 원하는 데이터를 빠르게 찾아내거나 특정 패턴을 기준으로 결과를 필터링할 수 있습니다. 아래는 Docker에서 grep을 활용한 대표적인 사례입니다.


1. 실행 중인 컨테이너 필터링

1.1 특정 이름의 컨테이너 검색

docker ps | grep <컨테이너 이름>
  • 예시: my-app이라는 이름이 포함된 컨테이너 검색.
docker ps | grep my-app

출력:

b1d2c3e4f5  my-app-container   "python app.py"   2 minutes ago  Up 2 minutes  5000/tcp

1.2 특정 상태의 컨테이너 검색

docker ps -a | grep Exited
  • 실행 중이 아닌 종료된 컨테이너를 검색.

출력:

c3d4e5f6g7  exited-container   "python app.py"   5 hours ago  Exited (0)

2. 이미지 검색

2.1 특정 이미지 이름 검색

docker images | grep <이미지 이름>
  • 예시: ubuntu라는 이름이 포함된 Docker 이미지를 검색.
docker images | grep ubuntu

출력:

ubuntu      latest     4e2eef94cd6b   4 weeks ago    29.4MB

2.2 특정 태그를 가진 이미지 검색

docker images | grep <태그>
  • 예시: latest 태그를 가진 이미지를 검색.
docker images | grep latest

3. 로그에서 특정 텍스트 검색

3.1 컨테이너 로그에서 특정 문자열 검색

docker logs <컨테이너 ID> 2>&1 | grep <검색 문자열>
  • 예시: 컨테이너 로그에서 error를 포함한 로그 검색.
docker logs my-container 2>&1 | grep error

3.2 로그에서 특정 패턴과 일치하는 텍스트 검색

docker logs <컨테이너 ID> 2>&1 | grep -i <패턴>
  • -i: 대소문자 구분 없이 검색.
  • 예시: Warning 또는 warning 검색.
docker logs my-container 2>&1 | grep -i warning

4. 환경 변수 확인

4.1 컨테이너 환경 변수에서 특정 키 검색

docker exec <컨테이너 ID> env | grep <환경 변수 이름>
  • 예시: PATH 환경 변수 검색.
docker exec my-container env | grep PATH

출력:

PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin

5. 네트워크 정보 검색

5.1 특정 네트워크에 연결된 컨테이너 검색

docker network inspect <네트워크 이름> | grep <컨테이너 이름>
  • 예시: my-network 네트워크에서 my-app 검색.
docker network inspect my-network | grep my-app

6. Docker 시스템 정보 확인

6.1 특정 드라이버 또는 설정 검색

docker info | grep <키워드>
  • 예시: Docker 정보에서 Storage Driver 확인.
docker info | grep Storage

출력:

Storage Driver: overlay2

7. 실행 명령어 검증

7.1 컨테이너 실행 명령에서 특정 옵션 확인

docker inspect <컨테이너 ID> | grep <옵션>
  • 예시: 컨테이너의 실행 명령에서 --port 확인.
docker inspect my-container | grep --port

8. 프로세스 모니터링

8.1 컨테이너 내부에서 특정 프로세스 검색

docker exec <컨테이너 ID> ps aux | grep <프로세스 이름>
  • 예시: nginx 프로세스가 실행 중인지 확인.
docker exec my-container ps aux | grep nginx

9. 특정 파일 검색

9.1 컨테이너 파일 시스템에서 특정 파일 검색

docker exec <컨테이너 ID> find /path/to/search | grep <파일 이름>
  • 예시: /var/log 디렉터리에서 error.log 검색.
docker exec my-container find /var/log | grep error.log

10. Docker 명령어 자동화와 스크립트 활용

grep을 활용하여 Docker 명령어와 조합된 자동화 스크립트를 작성할 수 있습니다.

10.1 중지된 컨테이너 ID를 모두 삭제

docker ps -a | grep Exited | awk '{print $1}' | xargs docker rm
  • 설명:
    1. docker ps -a로 모든 컨테이너 확인.
    2. grep Exited로 중지된 컨테이너 필터링.
    3. awk '{print $1}'로 컨테이너 ID 추출.
    4. xargs docker rm으로 해당 컨테이너 삭제.

요약

grep은 Docker에서 다음과 같은 작업에 유용합니다:
1. 특정 컨테이너, 이미지, 로그, 환경 변수 검색.
2. 로그와 실행 결과에서 원하는 정보 필터링.
3. 자동화 스크립트에서 특정 조건에 따라 작업 수행.

이와 같은 grep 활용법은 Docker 관리 및 디버깅 작업을 간소화하는 데 매우 유용합니다.

0개의 댓글