컨테이너 재시작 시에도 카우치베이스 데이터 유지

가상화된 플랫폼을 위한 모범 사례 는 Amazon Web Services 및 Azure와 같은 가상화된 플랫폼에서 Couchbase를 실행하기 위한 모범 사례를 제공합니다.
또한 Docker 컨테이너로 실행하기 위한 몇 가지 권장 사항도 제공합니다.

권장 사항 중 하나는 Couchbase 노드별 데이터를 로컬 폴더에 매핑하는 것입니다.

이에 대해 좀 더 자세히 알아봅시다.

암시적 컨테이너별 스토리지

Couchbase 컨테이너가 다음과 같이 시작되는 경우:

이 컨테이너:

  • 다음을 사용하여 분리 모드로 시작합니다. -d
  • 다양한 쿼리, 캐싱 및 관리 포트는 다음을 사용하여 매핑됩니다. -p
  • 이름은 다음을 사용하여 제공됩니다. --이름
  • 이미지는 카우치베이스/서버:샌드박스

기본적으로 컨테이너에 대한 데이터는 관리되는 볼륨. 를 사용하여 볼륨 마운트 확인 도커 인스펙트 명령이 표시됩니다:

카우치베이스의 데이터는 다음 값으로 정의된 컨테이너 파일시스템에 저장됩니다. 출처 속성을 확인합니다. Mac 또는 Windows용 Docker의 경우 루트 파일시스템에 로그인하여 확인할 수 있습니다:

Linux 박스에서는 호스트 파일 시스템에서 직접 확인할 수 있습니다.

이제 데이터 디렉토리를 볼 수 있습니다:

컨테이너를 새로 실행할 때 새 디렉터리가 만들어집니다. 이 디렉터리는 컨테이너가 중지 및 제거되더라도 여전히 존재하지만 더 이상 쉽게 액세스할 수 없습니다. 따라서 컨테이너를 다시 시작할 때 데이터가 보존되지 않습니다. 볼륨은 명시적으로
명령을 사용하여 컨테이너와 함께 제거합니다:

컨테이너가 종료되면 애플리케이션의 전체 상태가 손실됩니다.

명시적 호스트 디렉터리 매핑

이제 명시적 볼륨 매핑을 사용하여 Couchbase 컨테이너를 시작해 보겠습니다:

이 컨테이너는 앞서 시작한 컨테이너와 매우 유사합니다. 가장 큰 차이점은 호스트의 디렉터리가 ~/couchbase 는 컨테이너의 디렉터리에 매핑됩니다. /opt/couchbase/var. 카우치베이스 컨테이너 지속
의 모든 데이터 /opt/couchbase/var 디렉터리를 추가합니다. 이제 해당 디렉터리가 호스트 파일시스템의 디렉터리에 매핑됩니다. 이렇게 하면 호스트 파일시스템 외부에서 컨테이너의 상태를 유지할 수 있습니다. 컨테이너의
는 Docker에서 사용하는 유니온 파일시스템을 우회하여 호스트 파일시스템을 컨테이너에 노출합니다. 이렇게 하면 컨테이너가 다시 시작될 때에도 상태를 유지할 수 있습니다. 새 컨테이너는 정확히 동일한 볼륨 매핑으로 시작하기만 하면 됩니다. 자세한 내용
로 볼 수 있습니다:

jq 는 별도로 설치해야 하는 JSON 프로세서입니다. 출력은 다음과 같이 표시됩니다:

소스 및 대상 디렉터리가 표시됩니다. RW 는 볼륨이 읽기/쓰기 상태임을 나타냅니다. 컨테이너가 Mac용 Docker를 사용하여 시작된 경우 다음과 같이 표시됩니다. 카우치베이스 웹 콘솔 는
http://localhost:8091 에서 액세스할 수 있습니다. The 데이터 버킷 탭에는 기본 여행 샘플 버킷:
docker-volume-couchbase-01

를 클릭합니다. 새 데이터 버킷 만들기 을 클릭하여 새 데이터 버킷을 만듭니다. 이름을 지정합니다. 샘플:
docker-volume-couchbase-02

그리고 데이터 버킷 탭이 새로 생성된 버킷으로 업데이트됩니다:
docker-volume-couchbase-03

이제 컨테이너를 중지하고 제거합니다:

동일한 명령을 사용하여 컨테이너를 다시 시작합니다:

데이터 버킷 탭을 클릭하면 Couchbase 웹 콘솔에 동일한 두 개의 버킷이 표시됩니다. 이 경우 컨테이너가 다른 호스트에서 시작되면 상태를 사용할 수 없습니다. 또는 호스트가 죽으면 상태가 손실됩니다.

컨테이너에서 지속성을 관리하는 보다 강력하고 완벽한 대안은 다음과 같은 공유 네트워크 파일시스템을 사용하는 것입니다. Ceph, GlusterFS 또는 네트워크 파일 시스템.
다른 일반적인 접근 방식은 다음을 사용하는 것입니다. 도커 볼륨 플러그인 같은 Flocker ClusterHQ 또는 소프트웨어 정의 스토리지에서
다음과 같은 PortWorx. 이러한 모든 저장 기술은 멀티 컨테이너 멀티 호스트 환경에서 컨테이너의 상태를 저장하는 방법을 간소화합니다. 향후 블로그에서 이러한 기술을 자세히 다룰 예정입니다.

자세한 내용은 컨테이너에서 데이터 관리.

couchbase.com/containers 에서는 다양한 컨테이너 프레임워크에서 Couchbase를 실행하는 방법에 대한 자세한 내용을 제공합니다.

Couchbase에 대한 자세한 정보:

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Arun Gupta, 개발자 지원 부문 부사장, Couchbase

아룬 굽타는 Couchbase의 개발자 지원 담당 부사장입니다. 그는 Sun, Oracle, Red Hat에서 10년 이상 개발자 커뮤니티를 구축하고 이끌었습니다. 그는 콘텐츠, 마케팅 캠페인 및 프로그램의 전략, 계획 및 실행을 개발 및 실행하는 교차 기능 팀을 이끄는 데 있어 깊은 전문성을 보유하고 있습니다. 그 전에는 Sun에서 엔지니어링 팀을 이끌었으며 Java EE 팀의 창립 멤버입니다. Gupta는 기술에 관한 블로그 게시물을 2,000개 이상 작성했습니다. 40여 개국에서 수많은 주제에 대해 광범위한 강연 경험을 가지고 있으며, 3년 연속 JavaOne Rock Star로 선정되었습니다. 또한 미국에서 Devoxx4Kids 지부를 설립하여 어린이를 대상으로 한 기술 교육을 지속적으로 장려하고 있습니다. 기술에 관한 여러 권의 책을 저술했으며, 열렬한 마라토너이자 지구를 횡단하는 사람, Java 챔피언, JUG 리더, NetBeans 드림팀 멤버, Docker 캡틴이기도 한 그는 @arungupta에서 쉽게 만나볼 수 있습니다.

댓글 하나

  1. 이후에는 컨테이너를 다시 시작하면 컨테이너의 IP 주소가 변경되므로 위의 접근 방식이 작동하지 않습니다.

    참조:
    https://github.com/couchbase/docker/issues/82
    https://github.com/couchbase/kubernetes/issues/27

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.