-
9. 쿠버네티스 환경 구축하자 - 데이터 볼륨 설정infra 2020. 8. 20. 01:45
데이터 볼륨
도커 컨테이너가 실행중에 작성 혹은 수정된 파일은 호스트 쪽 파일 시스템에 마운트되지 않는 한 컨테이너가 파기될 때 호스트에서 함께 삭제된다. 컨테이너 안에서 실행될 애플리케이션이 파일이나 디렉터리를 수정하고 이용하는, 다시 말해 상태를 갖는 유형이라면 파기된 컨테이너를 완전히 동일하게 재현하기가 쉽지 않다.
컨테이너를 사용해서 상태를 갖는 애플리케이션을 운영하려면 새로운버전의 컨테이가 배포돼도 이전 버전의 컨테이너에서 사용하던 파일 및 디렉터리를 그대로 이어받아 사용할 수 있어야한다. 이런 경우에 사용되는것이 데이터 볼륨이다.
데이터 볼륨은 도커 컨테이너안에 디렉터를 디스크에 퍼시스턴스 데이터로 남기기 위한 메커니즘으로, 호스트와 컨테이너 사이의 디렉터리 공유 및 재사용 가능을 제공한다. 이미지를 수정하고 새로운 컨테이너를 생성해도 같은 데이터 볼륨을 계속 사용할 수 있다.
데이터 볼륨을 생성하려면 다음과 같이 dokcer container run 명령에 v 옵션을 사용하면 된다.
docker container run [options] -v 호소트_디렉터리:컨테이너_디렉터리 리포지토리명[:태그] 명령
그럼 간단한 예제를 진행해보겠다. 다음은 컨테이너에서 생성된 파일을 호스트에서 참조하는 경우를 들 수 있다. 먼저 예제를 진행할 수 있게 아래와같이 컨테이너를 실행시킨다.
$ docker container run -v ${PWD}:workspace gihyodoker/imagemagick:latest convert -size 100*100 xc:#000000 /workpace/giho.jpg
위 명령의 convert 이후 부분이 컨테이너에 전달될 애플리케이션 실행 인자인데, 그 내용은 ImageMagick에 100 * 100 크기의 흑백 이미지를 담은 /workpace/gihyo.jpg라는 파일을생성하는명령이다. -v 옵션을 사용해 데이터 볼륨이 설정돼 있으므로 컨테이너 안의 /workspace디렉터리는 환경변수 $PWD 나타내는 디렉터가 마운트된다.
host에서 ls -l 명령을 통해 파일 현황을 보면 gihyo.jpg파일이 생성된것을 확인할 수 있다.
데이터볼륨은 공유 기능을 제공하므로 호스트에서 편집한 파일을 데이터 볼륨을 통해 이미지를 수정하지 않고도 컨테이너와 공유할 수 있다.
'infra' 카테고리의 다른 글
8. 쿠버네티스 환경 구축하자 - 컨테이너 실전 구축 및 배포 (0) 2020.08.15 7. 쿠버네티스 환경 구축하자 - 도커 컴포즈로 여러 컨테이너 실행하기 (0) 2020.08.13 6. 쿠버네티스 환경 구축하자 - 도커컨테이너 명령어 종류 (0) 2020.08.09 5. 쿠버네티스 환경 구축하자 - 도커 이미지 명령어 활용 (0) 2020.08.06 4. 쿠버네티스 환경 구축하자 - 도커 이미지 빌드하기 (0) 2020.08.06