퍼시스턴스 볼륨 API 구현 예시
컨테이너를 지워도 데이터를 잃지 않기 위해서는 퍼시스턴트 볼륨을 사용해야 한다.
앞에 작성한 환경 변수 API 구현 예시에서 만든 my_daemon을 수정해서 퍼시스턴스 볼륨 API 예시를 구현해보자
외부 저장소를 마운트한 디렉터리에 데이터를 쓰도록 바꾸었다.
다시 이미지를 생성하고 컨테이너를 실행해보자
호스트상에 퍼시스턴트 볼륨으로 마운트할 디렉터리를 만든다.
-v 호스트절대경로:컨테이너내경로로 볼륨의 path를 설정한다.
다른 터미널에서 컨테이너를 중지하고 다시 재기동 한다.
COUNT가 이어서 출력되는것을 확인할 수 있다.
그럼 아예 컨테이너를 삭제 후 다시 컨테이너를 실행해보겠다.
삭제 후 컨테이너를 다시 생성해 시작해도 COUNT가 이어서 출력되는것을 확인 할 수 있다.
보존된 데이터를 확인하니 정상적으로 저장되고있다.
로그와 백그라운드 기동
컨테이너를 백그라운드로 돌리기 위해서는 옵션 -d를 사용한다.
그러면 표준 출력이나 표준 오류가 터미널에 출력되지 않고 로그에만 기록된다.
즉, 컨테이너가 터미널로부터 분리된 상태로 기동한다.
이때는 로그를 통해 컨테이너 내 애플리케이션의 동작을 확인하게 된다.
환경변수 INTERVAL을 10초로 변경하고 퍼시스턴트 볼륨을 지정하여 백그라운드로 기동했다.
컨테이너의 -f 옵션을 이용해서 로그를 출력하면 실시간으로 로그를 확인할 수 있다.
백그라운드로 동작하는 컨테이너를 터미널에 연결시키기 위해서는 docker attach --sig-proxy=false 컨테이너명|컨테이너ID와 같이 입력하면 된다.
옵션 --sig-proxy=false를 설정한 이유는 터미널에서 Ctrl+c를 눌렀을때 컨테이너 자체를 종료하지 않고 터미널과 분리만 하기 위해서다.
'Docker & Kubernetes' 카테고리의 다른 글
쿠버네티스 파드 실행 (0) | 2021.12.01 |
---|---|
쿠버네티스 Window 환경 설치 (0) | 2021.11.30 |
환경 변수 API 구현 예시 (0) | 2021.11.26 |
컨테이너 API (0) | 2021.11.26 |
PHP 컨테이너와 MySQL 컨테이너의 연동 예시 (0) | 2021.11.26 |