Образ докера 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 -d Creating 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 logs Attaching to couchbaseserver_mycouchbase_1 mycouchbase_1 | Starting Couchbase Server -- Web UI available at http: // <ip>:8091 |
Настройте контейнер докера Couchbase
- Получить IP-адрес Docker Host:
12
docker-machine ip default
192.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 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
- Настройте службы данных, запросов и индексирования:
010203040506070809101112131415161718192021
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
- Настройте учетные данные для кластера:
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 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
Установите 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
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
Эти выходные данные показывают полную информацию о контейнере. В качестве альтернативы, просто идентификатор контейнера можно получить как:
12docker
ps
|
grep
couch |
awk
'{print $1}'
e54a9849ba35
- Запустите инструмент Couchbase Query:
123
docker
exec
-it e5
/opt/couchbase/bin/cbq
Couchbase query shell connected to http:
//localhost
:8093/ . Type Ctrl-D to
exit
.
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… . |