Образ докера Couchbase опубликован по адресу hub.docker.com/_/couchbase . Самый простой способ запустить это изображение:
|
1
|
docker run -d -p 8091:8091 couchbase/server |
8091 — это сетевой порт, используемый веб-консолью Couchbase для трафика REST. Полный набор портов задокументирован в Couchbase Network Configuration . Этот образ может быть настроен с использованием конфигурации одного хоста для одного контейнера, как описано на hub.docker.com/_/couchbase .
Этот блог покажет, что вы можете создать кластер Couchbase с одним узлом с помощью Docker, настроить его с помощью службы данных, индекса и запроса, загрузить образец корзины и запросить его.
Начните контейнер докера Couchbase
Запустите Docker-контейнер Couchbase, используя следующий docker-compose.yml :
|
01
02
03
04
05
06
07
08
09
10
|
mycouchbase: name: mycouchbase image: couchbase/server volumes: - ~/couchbase:/opt/couchbase/var ports: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 |
Этот файл Docker Compose можно загрузить с github.com/arun-gupta/docker-images/tree/master/couchbase-server .
Контейнер может быть запущен как:
|
1
2
|
docker-compose up -dCreating couchbaseserver_mycouchbase_1 |
Состояние работающего контейнера можно увидеть как:
|
01
02
03
04
05
06
07
08
09
10
|
docker-compose ps Name Command State Ports -----------------------------------------------------------------------------------------------------------------couchbaseserver_mycouchbas /entrypoint.sh couchbase-s Up 11207/tcp, e_1 ... 0.0.0.0:11210->11210/tcp, 11211/tcp, 18091/tcp, 18092/tcp, 0.0.0.0:8091->8091/tcp, 0.0.0.0:8092->8092/tcp, 0.0.0.0:8093->8093/tcp |
Журналы можно рассматривать как:
|
1
2
3
|
docker-compose logsAttaching to couchbaseserver_mycouchbase_1mycouchbase_1 | Starting Couchbase Server -- Web UI available at http://<ip>:8091 |
Настройте контейнер докера Couchbase
- Получить IP-адрес Docker Host:
12
docker-machine ip default192.168.99.100Используйте этот IP-адрес во всех последующих командах.
- Настройте память для служб данных и индексирования:
01020304050607080910111213141516171819202122
curl -v-X POST http://192.168.99.100:8091/pools/default-d memoryQuota=300 -d indexMemoryQuota=300* Hostname was NOT foundinDNS cache* Trying 192.168.99.100...* Connected to 192.168.99.100 (192.168.99.100) port 8091 (#0)> POST/pools/defaultHTTP/1.1> User-Agent: curl/7.37.1> Host: 192.168.99.100:8091> Accept: */*> Content-Length: 36> Content-Type: application/x-www-form-urlencoded>* upload completely sent off: 36 out of 36 bytes< HTTP/1.1 401 Unauthorized< WWW-Authenticate: Basic realm="Couchbase Server Admin / REST"* Server Couchbase Server is not blacklisted< Server: Couchbase Server< Pragma: no-cache< Date: Wed, 25 Nov 2015 22:48:16 GMT< Content-Length: 0< Cache-Control: no-cache<* Connection#0 to host 192.168.99.100 left intact - Настройте службы данных, запросов и индексирования:
010203040506070809101112131415161718192021
curl -vhttp://192.168.99.100:8091/node/controller/setupServices-d'services=kv%2Cn1ql%2Cindex'* Hostname was NOT foundinDNS cache* Trying 192.168.99.100...* Connected to 192.168.99.100 (192.168.99.100) port 8091 (#0)> POST/node/controller/setupServicesHTTP/1.1> User-Agent: curl/7.37.1> Host: 192.168.99.100:8091> Accept: */*> Content-Length: 26> Content-Type: application/x-www-form-urlencoded>* upload completely sent off: 26 out of 26 bytes< HTTP/1.1 200 OK* Server Couchbase Server is not blacklisted< Server: Couchbase Server< Pragma: no-cache< Date: Wed, 25 Nov 2015 22:49:51 GMT< Content-Length: 0< Cache-Control: no-cache<* Connection#0 to host 192.168.99.100 left intact - Настройте учетные данные для кластера:
0102030405060708091011121314151617181920212223
curl -v-X POST http://192.168.99.100:8091/settings/web-d port=8091 -d username=Administrator -d password=password* Hostname was NOT foundinDNS cache* Trying 192.168.99.100...* Connected to 192.168.99.100 (192.168.99.100) port 8091 (#0)> POST/settings/webHTTP/1.1> User-Agent: curl/7.37.1> Host: 192.168.99.100:8091> Accept: */*> Content-Length: 50> Content-Type: application/x-www-form-urlencoded>* upload completely sent off: 50 out of 50 bytes< HTTP/1.1 200 OK* Server Couchbase Server is not blacklisted< Server: Couchbase Server< Pragma: no-cache< Date: Wed, 25 Nov 2015 22:50:43 GMT< Content-Type: application/json< Content-Length: 44< Cache-Control: no-cache<* Connection#0 to host 192.168.99.100 left intact
Установите Couchbase Travel Sample Bucket
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
curl -v -u Administrator:password -X POST http://192.168.99.100:8091/sampleBuckets/install -d '["travel-sample"]'* Hostname was NOT found in DNS cache* Trying 192.168.99.100...* Connected to 192.168.99.100 (192.168.99.100) port 8091 (#0)* Server auth using Basic with user 'Administrator'> POST /sampleBuckets/install HTTP/1.1> Authorization: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA==> User-Agent: curl/7.37.1> Host: 192.168.99.100:8091> Accept: */*> Content-Length: 17> Content-Type: application/x-www-form-urlencoded> * upload completely sent off: 17 out of 17 bytes< HTTP/1.1 202 Accepted* Server Couchbase Server is not blacklisted< Server: Couchbase Server< Pragma: no-cache< Date: Wed, 25 Nov 2015 22:51:51 GMT< Content-Type: application/json< Content-Length: 2< Cache-Control: no-cache< * Connection #0 to host 192.168.99.100 left intact[] |
Query Couchbase Docker Container с использованием CBQ
- Список идентификатора контейнера сервера Couchbase:
123
dockerpsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESe54a9849ba35 couchbase/server"/entrypoint.sh couch"3 minutes ago Up 3 minutes 0.0.0.0:8091-8093->8091-8093/tcp, 11207/tcp, 11211/tcp, 18091-18092/tcp, 0.0.0.0:11210->11210/tcpcouchbaseserver_mycouchbase_1Эти выходные данные показывают полную информацию о контейнере. В качестве альтернативы, просто идентификатор контейнера можно получить как:
12dockerps|grepcouch |awk'{print $1}'e54a9849ba35 - Запустите инструмент Couchbase Query:
123
dockerexec-it e5/opt/couchbase/bin/cbqCouchbase query shell connected to http://localhost:8093/ . Type Ctrl-D toexit.cbq> - Запустите запрос:
010203040506070809101112131415161718192021222324252627
cbq>select* from `travel-sample` limit 1;{"requestID":"9b354cc0-371c-4126-84a2-dea302312b79","signature": {"*":"*"},"results": [{"travel-sample": {"callsign":"AIRFRANS","country":"France","iata":"AF","icao":"AFR","id": 137,"name":"Air France","type":"airline"}}],"status":"success","metrics": {"elapsedTime":"48.080992ms","executionTime":"47.950777ms","resultCount": 1,"resultSize": 293}}Вы поняли, что это был SQL-запрос для документа JSON? Как круто. Узнайте больше об этом интерактивном руководстве по N1QL .
Обзор кластера можно увидеть в 192.168.99.100:8091 :
Контейнеры данных можно рассматривать как:
Задайте свои вопросы на forums.couchbase.com, узнайте больше о Couchbase REST API или узнайте больше в Couchbase 4 Docs .
Последующий блог покажет, как все эти шаги могут быть полностью автоматизированы.
Наслаждайтесь!
| Ссылка: | Сконфигурируйте Docker Container Couchbase, используя REST API от нашего партнера по JCG Аруна Гупта из блога Miles to go 2.0… . |

