Образ докера Couchbase опубликован по адресу hub.docker.com/_/couchbase . Самый простой способ запустить это изображение:
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
:
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 .
Контейнер может быть запущен как:
docker-compose up -d
Creating couchbaseserver_mycouchbase_1
Статус работающего контейнера можно увидеть как:
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
Журналы можно рассматривать как:
docker-compose logs
Attaching to couchbaseserver_mycouchbase_1
mycouchbase_1 | Starting Couchbase Server -- Web UI available at http://<ip>:8091
Настройте контейнер докера Couchbase
- Получить IP-адрес Docker Host:
docker-machine ip default 192.168.99.100
Используйте этот IP-адрес во всех последующих командах.
- Настройте память для служб данных и индексов:
curl -v -X POST http://192.168.99.100:8091/pools/default -d memoryQuota=300 -d indexMemoryQuota=300 * 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) > POST /pools/default HTTP/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
- Настройте службы данных, запросов и индексирования:
curl -v http://192.168.99.100:8091/node/controller/setupServices -d 'services=kv%2Cn1ql%2Cindex' * 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) > POST /node/controller/setupServices HTTP/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
- Установите учетные данные для кластера:
curl -v -X POST http://192.168.99.100:8091/settings/web -d port=8091 -d username=Administrator -d password=password * 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) > POST /settings/web HTTP/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 {"newBaseUri":"http://192.168.99.100:8091/"}
Установите Couchbase Travel Sample Bucket
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:
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e54a9849ba35 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/tcp couchbaseserver_mycouchbase_1
Эти выходные данные показывают полную информацию о контейнере. В качестве альтернативы, просто идентификатор контейнера можно получить как:
docker ps | grep couch | awk '{print $1}' e54a9849ba35
- Запустите инструмент Couchbase Query:
docker exec -it e5 /opt/couchbase/bin/cbq Couchbase query shell connected to http://localhost:8093/ . Type Ctrl-D to exit. cbq>
- Запустите запрос:
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 , узнайте больше о REST API Couchbase или узнайте больше в Документах Couchbase 4 .
Последующий блог покажет, как все эти шаги могут быть полностью автоматизированы.
Наслаждайтесь!
Сообщение Настройка Couchbase Docker Контейнер с использованием REST API появился первый на моем блоге, Miles идти 3.0 … .
Похожие сообщения: