-
Docker Volume 사용컨테이너(Container)/Docker 2019. 7. 10. 10:17
이 주제에 대해서는 아래 URL에 잘 정리가 되어 있습니다. 참고하세요.
https://darkrasid.github.io/docker/container/volume/2017/05/10/docker-volumes.html
처음 도커 컨테이너를 테스트 해보고, 이거 좋구나 하는 생각이 들면서 당장 현업에 응용을 할 때 처음 만나는 문제가 데이터 파일을 주고 받는 것입니다.
도커는 기본적으로 휘발성이 있는 시스템입니다. 컨테이너가 사라지면 모든 것이 사라집니다.
컨테이너가 실행되는 동안 컨테이너 내부의 디렉토리에 파일을 저장하고 복사하고 옮기는 것은 어렵지 않게 할 수 있습니다.
하지만 장기적이고 일관된 방식으로 데이터를 관리하기 위해서는 영구 볼륨(Persistent Volume)을 사용하는 것이 필요합니다.
도커에서 영구 볼륨을 사용하는 방식에는 4가지 정도가 있는데, 이 블로그에서는 줄여서 2가지만 소개하겠습니다.
1. 호스트 디렉토리 직접 매핑
직관적이고 간단한 방법으로 일시적이고 간단하게 사용할 때 적절한 방법입니다.
아래 명령으로 호스트의 디렉토리를 컨테이너의 디렉토리로 매핑하면 컨테이너 내부에서 호스트의 파일을 접근할 수 있습니다.
ex) docker run -itd -v /host/some/where:/container/some/where ubuntu
ex) docker run --rm -v /root/docker/hostvolume:/hostvolume -it girirajanlab/cnlearn /bin/bash
2. Volume Container 사용
영구 볼륨을 체계적으로 관리하고 여러 개의 컨테이너에서 사용할 때 적합한 방법입니다. 관리면에서 장점이 많으므로 도커 컨테이너를 계속 사용하실 계획이면 이 방법에 익숙해 지시기를 권장합니다.
1) Volume Container 생성
먼저 아래와 같은 명령으로 볼륨 컨테이너를 생성합니다. 이것은 도커 컨테이너인데 볼륨 사용만을 위해 존재하는 컨테이너입니다.
docker run --name volume_container -itd -v /root/docker/vc1:/vcdata1 -v /root/docker/vc2:/vcdata2 centos
2) Volume Container Mapping
앞에서 생성한 볼륨 컨테이너를 사용하고자 하는 컨테이너에서 매핑합니다.
ex) docker run --name=target_container --volumes-from=volume_container -itd ubuntu
ex) docker run --rm --volumes-from=volume_container -it girirajanlab/cnlearn /bin/bash
볼륨 컨테이너를 stop해도 볼륨을 사용할 수 있다.
'컨테이너(Container) > Docker' 카테고리의 다른 글
윈도우 10 - WSL 2 docker 설치 (0) 2021.02.03 윈도우 10 Home - WSL 2 설치 (0) 2021.02.02 [거두절미]컨테이너란 무엇인가? (0) 2019.10.02