카우치베이스 포럼에 질문이 있습니다. 도커 컴포즈에서 N1QL을 사용할 수 없습니다.. 이 블로그에서는 Docker Compose를 사용하여 Couchbase를 실행하고 N1QL 쿼리.
Docker Compose란 무엇인가요?
Docker Compose를 사용하면 단일 파일에 모든 종속성을 포함하는 멀티 컨테이너 애플리케이션을 정의한 다음 단일 명령으로 애플리케이션을 스핀업할 수 있습니다.
도커 컴포즈 소개 도커 1.13의 v3. 어떤 버전의 Docker를 실행 중인지 어떻게 알 수 있나요?
도커 버전
명령은 해당 정보를 제공합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
클라이언트: 버전: 1.13.1 API 버전: 1.26 이동 버전: go1.7.5 Git commit: 092cba3 구축: 수요일 2월 8 08:47:51 2017 OS/아치: darwin/amd64 서버: 버전: 1.13.1 API 버전: 1.26 (최소 버전 1.12) 이동 버전: go1.7.5 Git commit: 092cba3 구축: 수요일 2월 8 08:47:51 2017 OS/아치: 리눅스/amd64 실험적: true |
카우치베이스 도커 파일 작성하기
이제 이 버전의 Docker가 표시되면 다음 작성 파일을 사용할 수 있습니다:
1 2 3 4 5 6 7 8 9 10 11 12 |
버전: "3" 서비스: db: 이미지: arungupta/카우치베이스 배포: 복제본: 1 포트: - 8091:8091 - 8092:8092 - 8093:8093 - 8094:8094 - 11210:11210 |
이 작성 파일에서:
- v3 버전의 파일 작성. 이전 버전의 Docker를 사용하는 경우 다음을 사용할 수 있습니다. 파일 작성 v2 버전.
아룽업타/카우치베이스
Docker 이미지는 Couchbase 서버를 시작하는 데 사용됩니다. 이 이미지는 다음 설명에 따라 생성됩니다. github.com/arun-gupta/docker-images/tree/master/couchbase. 사용 Couchbase REST API 를 클릭하여 Couchbase 서버를 사전 구성합니다.- 포트 8091, 8092, 8093, 8094, 11210이 노출됩니다.
- Couchbase 서버의 복제본 하나만 시작됩니다.
이 작성 파일을 사용하여 몇 가지 방법으로 Couchbase를 시작할 수 있습니다.
단일 도커 호스트에서 도커 컴포즈를 사용하는 카우치베이스
단일 호스트(예: Mac용 Docker 또는 단일 Docker 머신에서 프로비저닝된 경우)에서 Couchbase를 시작하려면 다음 명령을 사용하세요:
1 |
도커-작성 up -d |
그러면 경고 메시지가 표시되지만 Couchbase 서버가 시작됩니다:
1 2 |
경고: 일부 서비스 (db) 사용 의 'deploy' 키, 어느 will be 무시됨. 작성 does not 지원 배포 구성 - 사용 `도커 스택 배포` 에 배포 에 a swarm. 만들기 couchbase_db_1 |
다음 명령을 사용하여 서비스 시작 상태를 확인합니다. 도커-컴포지트 ps
:
1 2 3 4 5 6 7 8 9 10 |
이름 명령 상태 포트 ----------------------------------------------------------------------------------------------------------------- couchbase_db_1 /진입점.sh /opt/couchb Up 11207/tcp, ... 0.0.0.0:11210->11210/tcp, 11211/tcp, 18091/tcp, 18092/tcp, 18093/tcp, 0.0.0.0:8091->8091/tcp, 0.0.0.0:8092->8092/tcp, 0.0.0.0:8093->8093/tcp, 0.0.0.0:8094->8094/tcp |
노출된 모든 포트가 표시되며 http://localhost:8091 에서 Couchbase에 액세스할 수 있습니다. 웹 콘솔에 액세스하려면 관리자/비밀번호 자격 증명을 사용합니다.
이제 버킷을 만들고 CBQ에서 연결하여 N1QL 쿼리를 실행할 수 있습니다. 예를 들어
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
/사용자/arungupta/도구/카우치베이스/카우치베이스\ 서버\ 4.5\ EE.앱/콘텐츠/리소스/카우치베이스-핵심/bin/cbq -u 관리자 -p 비밀번호 --엔진 http://localhost:8093 연결됨 에 : http://localhost:8093/. Ctrl-D 또는 \QUIT를 입력하여 종료합니다. 경로 에 역사 파일 에 대한 의 shell : /사용자/arungupta/.cbq_history cbq> 선택 now_str(); { "요청ID": "d28280ab-49a4-4254-9f00-06bd1d2b4695", "서명": { "$1": "문자열" }, "결과": [ { "$1": "2017-02-13T21:36:57.248Z" } ], "status": "성공", "metrics": { "elapsedTime": "2.916653ms", "실행 시간": "2.829056ms", "resultCount": 1, "결과 크기": 56 } } cbq> 선택 버전(); { "요청ID": "51091fa6-dcc5-40f6-9c2b-1eb6732630bb", "서명": { "$1": "문자열" }, "결과": [ { "$1": "1.6.0" } ], "status": "성공", "metrics": { "elapsedTime": "4.599365ms", "실행 시간": "4.525552ms", "resultCount": 1, "결과 크기": 37 } } |
일반적으로 다음을 사용하여 Docker Compose에서 시작한 서비스를 확장할 수 있습니다. 도커-컴포즈 스케일
명령을 사용할 수 있습니다. 그러나 포트가 노출되어 있으므로 이 경우에는 불가능합니다. 서비스를 확장하면 포트 충돌이 발생할 수 있습니다.
다음 명령을 사용하여 컨테이너를 내릴 수 있습니다. 도커-컴포지트 다운
.
멀티 호스트 스웜 모드 클러스터에서 Docker Compose를 사용하는 카우치베이스
Docker에서는 스웜 모드를 사용하여 클러스터에서 여러 호스트를 구성할 수 있습니다. 다음 명령을 사용하여 구성할 수 있습니다. 도커 스웜 초기화
.
클러스터가 초기화되면 Compose 파일을 사용하여 클러스터를 시작할 수 있습니다:
1 |
도커 배포 --작성-파일=도커-작성.yml 카우치베이스 |
출력이 표시됩니다:
1 2 |
만들기 네트워크 카우치베이스_기본값 만들기 서비스 couchbase_db |
이렇게 하면 Docker 서비스가 생성되고 다음 명령을 사용하여 상태를 확인할 수 있습니다. 도커 서비스 ls
:
1 2 |
ID 이름 모드 복제 이미지 0ZLS1K4MGRY couchbase_db 복제 1/1 arungupta/카우치베이스:최신 |
다음 명령을 사용하여 서비스 내에서 실행 중인 작업/컨테이너를 확인합니다. 도커 서비스 ps couchbase_db
:
1 2 |
ID 이름 이미지 NODE DESIRED 상태 현재 상태 오류 포트 VF5ZICU4MHEI couchbase_db.1 arungupta/카우치베이스:최신 moby 실행 중 실행 중 3 시간 전 |
여기서도 Couchbase 서버에 연결하여 N1QL 쿼리를 실행할 수 있습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
/사용자/arungupta/도구/카우치베이스/카우치베이스\ 서버\ 4.5\ EE.앱/콘텐츠/리소스/카우치베이스-핵심/bin/cbq -u 관리자 -p 비밀번호 --엔진 http://localhost:8093 연결됨 에 : http://localhost:8093/. Ctrl-D 또는 \QUIT를 입력하여 종료합니다. 경로 에 역사 파일 에 대한 의 shell : /사용자/arungupta/.cbq_history cbq> 선택 버전(); { "요청ID": "12c5581e-44ee-4ea7-9017-6a017bb60a58", "서명": { "$1": "문자열" }, "결과": [ { "$1": "1.6.0" } ], "status": "성공", "metrics": { "elapsedTime": "3.725498ms", "실행 시간": "3.678153ms", "resultCount": 1, "결과 크기": 37 } } cbq> 선택 now_str(); { "요청ID": "efe034fa-6d00-4327-9fc9-da8f6d15d95c", "서명": { "$1": "문자열" }, "결과": [ { "$1": "2017-02-13T21:38:33.502Z" } ], "status": "성공", "metrics": { "elapsedTime": "853.491µs", "실행 시간": "800.154µs", "resultCount": 1, "결과 크기": 56 } } |
서비스 및 서비스에서 실행 중인 컨테이너는 다음 명령을 사용하여 종료할 수 있습니다. 도커 서비스 카우치베이스_DB
.
더 궁금한 점이 있으신가요? 문의하기 카우치베이스 포럼.
실행을 고려할 수도 있습니다. Docker를 사용한 카우치베이스 클러스터 에 대해 자세히 알아보거나 스웜에 도커 서비스 배포하기.
컨테이너에서 Couchbase를 실행하는 방법에 대해 자세히 알아보고 싶으신가요?