카우치베이스 포럼에 질문이 있습니다. 도커 컴포즈에서 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 |
Client: Version: 1.13.1 API version: 1.26 Go version: go1.7.5 Git commit: 092cba3 Built: Wed Feb 8 08:47:51 2017 OS/Arch: darwin/amd64 Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Go version: go1.7.5 Git commit: 092cba3 Built: Wed Feb 8 08:47:51 2017 OS/Arch: linux/amd64 Experimental: true |
카우치베이스 도커 파일 작성하기
이제 이 버전의 Docker가 표시되면 다음 작성 파일을 사용할 수 있습니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
version: "3" services: db: image: arungupta/couchbase deploy: replicas: 1 ports: - 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 |
docker-compose up -d |
그러면 경고 메시지가 표시되지만 Couchbase 서버가 시작됩니다:
|
1 2 |
WARNING: Some services (db) use the 'deploy' key, which will be ignored. Compose does not support deploy configuration - use `docker stack deploy` to deploy to a swarm. Creating couchbase_db_1 |
다음 명령을 사용하여 서비스 시작 상태를 확인합니다. 도커-컴포지트 ps:
|
1 2 3 4 5 6 7 8 9 10 |
Name Command State Ports ----------------------------------------------------------------------------------------------------------------- couchbase_db_1 /entrypoint.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 |
노출된 모든 포트가 표시되며 https://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 |
/Users/arungupta/tools/couchbase/Couchbase\ Server\ 4.5\ EE.app/Contents/Resources/couchbase-core/bin/cbq -u Administrator -p password --engine https://localhost:8093 Connected to : https://localhost:8093/. Type Ctrl-D or \QUIT to exit. Path to history file for the shell : /Users/arungupta/.cbq_history cbq> select now_str(); { "requestID": "d28280ab-49a4-4254-9f00-06bd1d2b4695", "signature": { "$1": "string" }, "results": [ { "$1": "2017-02-13T21:36:57.248Z" } ], "status": "success", "metrics": { "elapsedTime": "2.916653ms", "executionTime": "2.829056ms", "resultCount": 1, "resultSize": 56 } } cbq> select version(); { "requestID": "51091fa6-dcc5-40f6-9c2b-1eb6732630bb", "signature": { "$1": "string" }, "results": [ { "$1": "1.6.0" } ], "status": "success", "metrics": { "elapsedTime": "4.599365ms", "executionTime": "4.525552ms", "resultCount": 1, "resultSize": 37 } } |
일반적으로 다음을 사용하여 Docker Compose에서 시작한 서비스를 확장할 수 있습니다. 도커-컴포즈 스케일 명령을 사용할 수 있습니다. 그러나 포트가 노출되어 있으므로 이 경우에는 불가능합니다. 서비스를 확장하면 포트 충돌이 발생할 수 있습니다.
다음 명령을 사용하여 컨테이너를 내릴 수 있습니다. 도커-컴포지트 다운.
멀티 호스트 스웜 모드 클러스터에서 Docker Compose를 사용하는 카우치베이스
Docker에서는 스웜 모드를 사용하여 클러스터에서 여러 호스트를 구성할 수 있습니다. 다음 명령을 사용하여 구성할 수 있습니다. 도커 스웜 초기화.
클러스터가 초기화되면 Compose 파일을 사용하여 클러스터를 시작할 수 있습니다:
|
1 |
docker deploy --compose-file=docker-compose.yml couchbase |
출력이 표시됩니다:
|
1 2 |
Creating network couchbase_default Creating service couchbase_db |
이렇게 하면 Docker 서비스가 생성되고 다음 명령을 사용하여 상태를 확인할 수 있습니다. 도커 서비스 ls:
|
1 2 |
ID NAME MODE REPLICAS IMAGE 0zls1k4mgrry couchbase_db replicated 1/1 arungupta/couchbase:latest |
다음 명령을 사용하여 서비스 내에서 실행 중인 작업/컨테이너를 확인합니다. 도커 서비스 ps couchbase_db:
|
1 2 |
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS vf5zicu4mhei couchbase_db.1 arungupta/couchbase:latest moby Running Running 3 hours ago |
여기서도 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 |
/Users/arungupta/tools/couchbase/Couchbase\ Server\ 4.5\ EE.app/Contents/Resources/couchbase-core/bin/cbq -u Administrator -p password --engine https://localhost:8093 Connected to : https://localhost:8093/. Type Ctrl-D or \QUIT to exit. Path to history file for the shell : /Users/arungupta/.cbq_history cbq> select version(); { "requestID": "12c5581e-44ee-4ea7-9017-6a017bb60a58", "signature": { "$1": "string" }, "results": [ { "$1": "1.6.0" } ], "status": "success", "metrics": { "elapsedTime": "3.725498ms", "executionTime": "3.678153ms", "resultCount": 1, "resultSize": 37 } } cbq> select now_str(); { "requestID": "efe034fa-6d00-4327-9fc9-da8f6d15d95c", "signature": { "$1": "string" }, "results": [ { "$1": "2017-02-13T21:38:33.502Z" } ], "status": "success", "metrics": { "elapsedTime": "853.491µs", "executionTime": "800.154µs", "resultCount": 1, "resultSize": 56 } } |
서비스 및 서비스에서 실행 중인 컨테이너는 다음 명령을 사용하여 종료할 수 있습니다. 도커 서비스 카우치베이스_DB.
더 궁금한 점이 있으신가요? 문의하기 카우치베이스 포럼.
실행을 고려할 수도 있습니다. Docker를 사용한 카우치베이스 클러스터 에 대해 자세히 알아보거나 스웜에 도커 서비스 배포하기.
컨테이너에서 Couchbase를 실행하는 방법에 대해 자세히 알아보고 싶으신가요?