ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker 컨테이너 실행 실패할 때 컨테이너 내부 파일 시스템 확인하는 방법
    Docker 2024. 4. 12. 16:58

    컨테이너가 실행 실패하거나 바로 종료되는 경우에도 몇 가지 방법으로 컨테이너 내부 파일 시스템을 확인할 수 있다. 여기에는 docker cp 명령어를 사용하는 방법, docker commit을 활용하는 방법, 그리고 컨테이너를 실행할 때 특정 명령어를 오버라이드하여 진입하는 방법 등이 있다.

    1. docker cp 명령어 사용하기

    실행 실패로 종료된 컨테이너가 있고, 그 컨테이너의 ID 또는 이름을 알고 있다면, docker cp 명령어를 사용하여 호스트 시스템과 컨테이너 간에 파일을 복사할 수 있다. 이 방법으로 컨테이너 내부의 파일이나 디렉토리를 호스트 시스템으로 가져올 수 있다.

    docker cp <container\_id>:/path/to/container/file/or/directory /path/to/host/destination

    이 명령어는 컨테이너 내부의 특정 위치(/path/to/container/file/or/directory)에서 파일이나 디렉토리를 호스트 시스템의 지정된 위치(/path/to/host/destination)로 복사한다.

    2. docker commit과 컨테이너 이미지 생성하기

    컨테이너의 상태를 이미지로 커밋하고, 이 이미지를 기반으로 새 컨테이너를 실행하여 내부를 탐색할 수 있다. 이 방법은 컨테이너의 현재 상태를 "스냅샷"하는 것과 같다.

    docker commit <container_id> new_image_name

    이 명령어는 지정된 컨테이너(<container_id>)를 새 이미지(new_image_name)로 커밋한다. 그 후, 이 이미지를 기반으로 새 컨테이너를 실행하여 내부를 탐색할 수 있다.

    docker run -it new_image_name bash

    3. 실행 명령어 오버라이드하기

    컨테이너가 실행될 때 특정 명령어(예: 애플리케이션 서버 실행) 때문에 실패하는 경우, 컨테이너를 실행할 때 이 명령어를 오버라이드하여 대화형 쉘을 시작할 수 있다.

    docker run -it --entrypoint /bin/bash <image_name>

    이 명령어는 이미지에서 컨테이너를 실행할 때 초기 실행 명령어를 /bin/bash로 설정하여, 컨테이너 내부에 직접 접근할 수 있게 해준다. 이 방법은 컨테이너가 바로 종료되지 않고 사용자가 컨테이너 내부에서 필요한 조사를 수행할 수 있도록 한다.

    위 방법들을 활용하면, 컨테이너가 실행 실패하거나 바로 종료될 때도 컨테이너 내부의 파일 시스템을 확인하고 문제를 진단할 수 있다.

Designed by Tistory.