Couchbase Forums tiene una pregunta No se puede utilizar N1QL en docker-compose. Este blog mostrará cómo ejecutar Couchbase utilizando Docker Compose y ejecutar un Consulta N1QL.
¿Qué es Docker Compose?
Docker Compose le permite definir su aplicación multicontenedor con todas sus dependencias en un único archivo y, a continuación, poner en marcha su aplicación con un único comando.
Presentación de Docker Compose v3 en Docker 1.13. ¿Cómo sabe qué versión de Docker está ejecutando?
versión docker
le proporciona esa información:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Cliente: Versión: 1.13.1 API versión: 1.26 Vaya a versión: ir1.7.5 Git escriba a: 092cba3 Construido: Miércoles Febrero 8 08:47:51 2017 OS/Arch: darwin/amd64 Servidor: Versión: 1.13.1 API versión: 1.26 (mínimo versión 1.12) Vaya a versión: ir1.7.5 Git escriba a: 092cba3 Construido: Miércoles Febrero 8 08:47:51 2017 OS/Arch: linux/amd64 Experimental: verdadero |
Archivo Docker Compose de Couchbase
Ahora si ves esta versión de Docker, entonces puedes usar el siguiente archivo Compose:
1 2 3 4 5 6 7 8 9 10 11 12 |
versión: "3" servicios: db: imagen: arungupta/couchbase despliegue: réplicas: 1 puertos: - 8091:8091 - 8092:8092 - 8093:8093 - 8094:8094 - 11210:11210 |
En este archivo Compose:
- Versión v3 del archivo Compose. Si está utilizando una versión anterior de Docker, entonces puede considerar el uso de Versión v2 del archivo Compose.
arungupta/couchbase
La imagen Docker se utiliza para iniciar el servidor Couchbase. Esta imagen se crea como se explica en github.com/arun-gupta/docker-images/tree/master/couchbase. Utiliza API REST de Couchbase para preconfigurar el servidor Couchbase.- Los puertos 8091, 8092, 8093, 8094, 11210 están expuestos.
- Sólo se inicia una única réplica del servidor Couchbase.
Couchbase puede iniciarse de varias formas utilizando este archivo Compose.
Couchbase usando Docker Compose en un único host Docker
Si desea iniciar Couchbase en un único host (como el aprovisionado por Docker para Mac o una única máquina Docker), utilice el comando:
1 |
docker-componer arriba -d |
Esto mostrará el mensaje de advertencia, pero inicia el servidor Couchbase:
1 2 |
ADVERTENCIA: Algunos servicios (db) utilice el "desplegar clave, que se sea ignorado. Componga hace no soporte despliegue configuración - utilice `docker pila despliegue` a despliegue a a enjambre. Creación de couchbase_db_1 |
Compruebe el estado del servicio iniciado mediante el comando docker-compose ps
:
1 2 3 4 5 6 7 8 9 10 |
Nombre Comando Estado Puertos ----------------------------------------------------------------------------------------------------------------- couchbase_db_1 /punto de entrada.sh /op/couchb Arriba 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 |
Se muestran todos los puertos expuestos y Couchbase es accesible en http://localhost:8091. Utilice las credenciales Administrador/contraseña para acceder a la consola web.
Ahora puede crear buckets y conectarse desde CBQ y ejecutar consultas N1QL. Por ejemplo:
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 |
/Usuarios/arungupta/herramientas/couchbase/Couchbase\ Servidor\ 4.5\ EE.aplicación/Contenido/Recursos/couchbase-núcleo/papelera/cbq -u Administrador -p contraseña --motor http://localhost:8093 Conectado a : http://localhost:8093/. Teclee Ctrl-D o \QUIT para salir. Ruta a historia archivo para el concha : /Usuarios/arungupta/.cbq_historia cbq> seleccione ahora_str(); { "requestID": "d28280ab-49a4-4254-9f00-06bd1d2b4695", "firma": { "$1": "cadena" }, "resultados": [ { "$1": "2017-02-13T21:36:57.248Z" } ], "status": "éxito", "métricas": { "tiempo transcurrido": "2.916653ms", "executionTime": "2.829056ms", "resultCount": 1, "resultSize": 56 } } cbq> seleccione versión(); { "requestID": "51091fa6-dcc5-40f6-9c2b-1eb6732630bb", "firma": { "$1": "cadena" }, "resultados": [ { "$1": "1.6.0" } ], "status": "éxito", "métricas": { "tiempo transcurrido": "4.599365ms", "executionTime": "4.525552ms", "resultCount": 1, "resultSize": 37 } } |
Normalmente, puede escalar los servicios iniciados por Docker Compose utilizando docker-compose scale
comando. Pero esto no será posible en nuestro caso ya que los puertos están expuestos. Escalar un servicio causará conflicto de puertos.
El contenedor se puede bajar utilizando el comando docker-compose down
.
Couchbase usando Docker Compose en Cluster multi-host en modo Swarm
Docker permite configurar varios hosts en un clúster utilizando el modo Swarm. Esto se puede configurar mediante el comando docker swarm init
.
Una vez inicializado el clúster, se puede utilizar el archivo Compose para iniciar el clúster:
1 |
docker despliegue --componer-archivo=docker-componer.yml couchbase |
Muestra la salida:
1 2 |
Creación de red couchbase_default Creación de servicio couchbase_db |
Esto crea un servicio Docker y el estado se puede ver utilizando el comando docker service ls
:
1 2 |
ID NOMBRE MODO RÉPLICAS IMAGEN 0zls1k4mgrry couchbase_db replicado 1/1 arungupta/couchbase:última |
Compruebe las tareas/contenedores que se ejecutan dentro del servicio utilizando el comando docker service ps couchbase_db
:
1 2 |
ID NOMBRE IMAGEN NODO DESEADO ESTADO ACTUAL ESTADO ERROR PUERTOS vf5zicu4mhei couchbase_db.1 arungupta/couchbase:última moby Ejecutar Ejecutar 3 horas hace |
Aquí también puedes conectarte al servidor Couchbase y ejecutar 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 |
/Usuarios/arungupta/herramientas/couchbase/Couchbase\ Servidor\ 4.5\ EE.aplicación/Contenido/Recursos/couchbase-núcleo/papelera/cbq -u Administrador -p contraseña --motor http://localhost:8093 Conectado a : http://localhost:8093/. Teclee Ctrl-D o \QUIT para salir. Ruta a historia archivo para el concha : /Usuarios/arungupta/.cbq_historia cbq> seleccione versión(); { "requestID": "12c5581e-44ee-4ea7-9017-6a017bb60a58", "firma": { "$1": "cadena" }, "resultados": [ { "$1": "1.6.0" } ], "status": "éxito", "métricas": { "tiempo transcurrido": "3.725498ms", "executionTime": "3.678153ms", "resultCount": 1, "resultSize": 37 } } cbq> seleccione ahora_str(); { "requestID": "efe034fa-6d00-4327-9fc9-da8f6d15d95c", "firma": { "$1": "cadena" }, "resultados": [ { "$1": "2017-02-13T21:38:33.502Z" } ], "status": "éxito", "métricas": { "tiempo transcurrido": "853.491µs", "executionTime": "800.154µs", "resultCount": 1, "resultSize": 56 } } |
El servicio, y por lo tanto el contenedor que se ejecuta en el servicio, se puede terminar utilizando el comando docker service couchbase_db
.
¿Tiene más preguntas? Póngase en contacto con nosotros en Foros de Couchbase.
También puede considerar la posibilidad de ejecutar Cluster Couchbase usando Docker o lea más sobre Despliegue de servicios Docker en Swarm.
¿Quieres saber más sobre cómo ejecutar Couchbase en contenedores?