Docker & Kubernetes

퍼시스턴스 볼륨 API 구현 예시

beekei 2021. 11. 26. 16:08
반응형
퍼시스턴스 볼륨 API 구현 예시

컨테이너를 지워도 데이터를 잃지 않기 위해서는 퍼시스턴트 볼륨을 사용해야 한다.

앞에 작성한 환경 변수 API 구현 예시에서 만든 my_daemon을 수정해서 퍼시스턴스 볼륨 API 예시를 구현해보자

my_deamon

외부 저장소를 마운트한 디렉터리에 데이터를 쓰도록 바꾸었다.

 

다시 이미지를 생성하고 컨테이너를 실행해보자

이미지 생성

호스트상에 퍼시스턴트 볼륨으로 마운트할 디렉터리를 만든다.

data 폴더 생성

-v 호스트절대경로:컨테이너내경로로 볼륨의 path를 설정한다.

컨테이너 실행
컨테이너 중지

다른 터미널에서 컨테이너를 중지하고 다시 재기동 한다.

COUNT가 이어서 출력되는것을 확인할 수 있다.

 

그럼 아예 컨테이너를 삭제 후 다시 컨테이너를 실행해보겠다.

컨테이너 삭제
컨테이너 실행

삭제 후 컨테이너를 다시 생성해 시작해도 COUNT가 이어서 출력되는것을 확인 할 수 있다.

보존 데이터 출력

보존된 데이터를 확인하니 정상적으로 저장되고있다.


로그와 백그라운드 기동

컨테이너를 백그라운드로 돌리기 위해서는 옵션 -d를 사용한다.

그러면 표준 출력이나 표준 오류가 터미널에 출력되지 않고 로그에만 기록된다.

즉, 컨테이너가 터미널로부터 분리된 상태로 기동한다.

이때는 로그를 통해 컨테이너 내 애플리케이션의 동작을 확인하게 된다.

실시간 로그 출력

환경변수 INTERVAL을 10초로 변경하고 퍼시스턴트 볼륨을 지정하여 백그라운드로 기동했다.

컨테이너의 -f 옵션을 이용해서 로그를 출력하면 실시간으로 로그를 확인할 수 있다.

 

 

 

백그라운드로 동작하는 컨테이너를 터미널에 연결시키기 위해서는 docker attach --sig-proxy=false 컨테이너명|컨테이너ID와 같이 입력하면 된다.

옵션 --sig-proxy=false를 설정한 이유는 터미널에서 Ctrl+c를 눌렀을때 컨테이너 자체를 종료하지 않고 터미널과 분리만 하기 위해서다.

백그라운드에서 동작하는 컨테이너를 포그라운드로 전환

 

반응형