ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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해도 볼륨을 사용할 수 있다.

    댓글

Starcell Inc. all right reserved