Os Fóruns do Couchbase têm uma pergunta Não é possível usar o N1QL no docker-compose. Este blog mostrará como executar o Couchbase usando o Docker Compose e executar um Consulta N1QL.
O que é o Docker Compose?
O Docker Compose permite que você defina seu aplicativo de vários contêineres com todas as suas dependências em um único arquivo e, em seguida, execute seu aplicativo com um único comando.
Introdução ao Docker Compose v3 no Docker 1.13. Como saber qual versão do Docker você está executando?
versão da janela de encaixe
fornece essas informações:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Cliente: Versão: 1.13.1 API versão: 1.26 Ir versão: go1.7.5 Git comprometer: 092cba3 Construído: Quarta fevereiro 8 08:47:51 2017 SO/Arco: Darwin/amd64 Servidor: Versão: 1.13.1 API versão: 1.26 (mínimo versão 1.12) Ir versão: go1.7.5 Git comprometer: 092cba3 Construído: Quarta fevereiro 8 08:47:51 2017 SO/Arco: linux/amd64 Experimental: verdadeiro |
Arquivo de composição do Docker do Couchbase
Agora, se você vir essa versão do Docker, poderá usar o seguinte arquivo Compose:
1 2 3 4 5 6 7 8 9 10 11 12 |
versão: "3" serviços: db: imagem: arungupta/couchbase implantação: réplicas: 1 portos: - 8091:8091 - 8092:8092 - 8093:8093 - 8094:8094 - 11210:11210 |
Nesse arquivo Compose:
- Versão v3 do arquivo Compose. Se estiver usando uma versão mais antiga do Docker, você pode considerar o uso de Versão v2 do arquivo Compose.
arungupta/couchbase
A imagem do Docker é usada para iniciar o servidor Couchbase. Essa imagem é criada conforme explicado em github.com/arun-gupta/docker-images/tree/master/couchbase. Ele usa API REST do Couchbase para pré-configurar o servidor Couchbase.- As portas 8091, 8092, 8093, 8094 e 11210 estão expostas.
- Apenas uma única réplica do servidor Couchbase é iniciada.
O Couchbase pode ser iniciado de duas maneiras usando esse arquivo Compose.
Couchbase usando o Docker Compose em um único host do Docker
Se quiser iniciar o Couchbase em um único host (como o provisionado pelo Docker para Mac ou um único Docker Machine), use o comando:
1 |
doca-compor para cima -d |
Isso mostrará a mensagem de aviso, mas iniciará o servidor Couchbase:
1 2 |
AVISO: Alguns serviços (db) uso o 'implantar' chave, que vontade ser ignorado. Compor faz não suporte implantação configuração - uso `doca pilha implantação` para implantação para a enxame. Criação de banco de dados de base de sofá_1 |
Verifique o status do serviço iniciado usando o comando docker-compose ps
:
1 2 3 4 5 6 7 8 9 10 |
Nome Comando Estado Portos ----------------------------------------------------------------------------------------------------------------- banco de dados de base de sofá_1 /ponto de entrada.sh /optar/sofá Para cima 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 |
Todas as portas expostas são mostradas e o Couchbase pode ser acessado em http://localhost:8091. Use as credenciais Administrador/senha para acessar o console da Web.
Agora você pode criar buckets e se conectar a partir do CBQ e executar consultas N1QL. Por exemplo:
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 |
/Usuários/arungupta/ferramentas/couchbase/Couchbase\ Servidor\ 4.5\ EE.aplicativo/Conteúdo/Recursos/couchbase-núcleo/caixa/cbq -u Administrador -p senha --motor http://localhost:8093 Conectado para : http://Digite Ctrl-D ou \QUIT para sair. Caminho para histórico arquivo para o casca : /Usuários/arungupta/.cbq_history cbq> selecionar now_str(); { "requestID": "d28280ab-49a4-4254-9f00-06bd1d2b4695", "assinatura": { "$1": "string" }, "resultados": [ { "$1": "2017-02-13T21:36:57.248Z" } ], "status": "sucesso", "métricas": { "elapsedTime" (tempo decorrido): "2.916653ms", "executionTime": "2.829056ms", "resultCount": 1, "resultSize": 56 } } cbq> selecionar versão(); { "requestID": "51091fa6-dcc5-40f6-9c2b-1eb6732630bb", "assinatura": { "$1": "string" }, "resultados": [ { "$1": "1.6.0" } ], "status": "sucesso", "métricas": { "elapsedTime" (tempo decorrido): "4.599365ms", "executionTime": "4.525552ms", "resultCount": 1, "resultSize": 37 } } |
Normalmente, você pode dimensionar os serviços iniciados pelo Docker Compose usando escala do docker-compose
comando. Mas isso não será possível em nosso caso, pois as portas estão expostas. O dimensionamento de um serviço causará conflito de portas.
O contêiner pode ser derrubado usando o comando docker-compose down
.
Couchbase usando o Docker Compose em um cluster de vários hosts no modo Swarm
O Docker permite que vários hosts sejam configurados em um cluster usando o modo Swarm. Isso pode ser configurado usando o comando inicialização do enxame de docas
.
Depois que o cluster for inicializado, o arquivo Compose poderá ser usado para iniciar o cluster:
1 |
doca implantação --compor-arquivo=doca-compor.yml couchbase |
Ele mostra a saída:
1 2 |
Criação de rede couchbase_default Criação de serviço banco de dados do couchbase |
Isso cria um serviço do Docker e o status pode ser visto usando o comando serviço docker ls
:
1 2 |
ID NOME MODO RÉPLICAS IMAGEM 0zls1k4mgrry banco de dados do couchbase replicado 1/1 arungupta/couchbase:mais recente |
Verifique as tarefas/contêineres em execução no serviço usando o comando serviço docker ps couchbase_db
:
1 2 |
ID NOME IMAGEM NÓ DESEJADO ESTADO ATUAL ESTADO ERRO PORTOS vf5zicu4mhei banco de dados do couchbase.1 arungupta/couchbase:mais recente moby Em execução Em execução 3 horas atrás |
Aqui, novamente, você pode se conectar ao servidor Couchbase e executar consultas 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 |
/Usuários/arungupta/ferramentas/couchbase/Couchbase\ Servidor\ 4.5\ EE.aplicativo/Conteúdo/Recursos/couchbase-núcleo/caixa/cbq -u Administrador -p senha --motor http://localhost:8093 Conectado para : http://Digite Ctrl-D ou \QUIT para sair. Caminho para histórico arquivo para o casca : /Usuários/arungupta/.cbq_history cbq> selecionar versão(); { "requestID": "12c5581e-44ee-4ea7-9017-6a017bb60a58", "assinatura": { "$1": "string" }, "resultados": [ { "$1": "1.6.0" } ], "status": "sucesso", "métricas": { "elapsedTime" (tempo decorrido): "3.725498ms", "executionTime": "3.678153ms", "resultCount": 1, "resultSize": 37 } } cbq> selecionar now_str(); { "requestID": "efe034fa-6d00-4327-9fc9-da8f6d15d95c", "assinatura": { "$1": "string" }, "resultados": [ { "$1": "2017-02-13T21:38:33.502Z" } ], "status": "sucesso", "métricas": { "elapsedTime" (tempo decorrido): "853.491µs", "executionTime": "800.154µs", "resultCount": 1, "resultSize": 56 } } |
O serviço e, portanto, o contêiner em execução no serviço, podem ser encerrados com o comando serviço docker couchbase_db
.
Tem mais perguntas? Entre em contato conosco em Fóruns do Couchbase.
Você também pode considerar a execução de Cluster do Couchbase usando o Docker ou leia mais sobre Implantação de serviços do Docker no Swarm.
Deseja saber mais sobre como executar o Couchbase em contêineres?