DevOps
Couchbase 4.1 Docker Container
Couchbase 4.1 was recently released. Highlights of this release are:
- N1QL: Complete SQL CRUD Support with N1QL for Batch and OLTP Applications
- Covering Indexes
- Prepared Statements
- Additional Supported Platforms
You can read all about it at Introducing Couchbase Server 4.1 and also watch a replay of Hands-on Introduction to What’s New in Couchbase 4.1:
Getting Started with Couchbase 4.1 and Docker
Use the following Docker Compose file:
mycouchbase: image: arungupta/couchbase ports: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210
to start a pre-configured Couchbase 4.1 Docker container:
docker-compose up -d Creating couchbase_mycouchbase_1
This will:
- Start Couchbase 4.1 Server (Dockerfile)
- Configure it using Couchbase REST API as explained in Configure Couchbase Docker Container using REST API
- Sets up memory and index quota
- Sets up Query, Data, and Index service
- Configures username and password credentials
- Install
travel-sample
bucket
The logs can be seen as:
docker-compose logs Attaching to couchbase_mycouchbase_1 mycouchbase_1 | Starting Couchbase Server -- Web UI available at http://<ip>:8091 mycouchbase_1 | * Trying 127.0.0.1... mycouchbase_1 | % Total % Received % Xferd Average Speed Time Time Time Current mycouchbase_1 | Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) mycouchbase_1 | > POST /pools/default HTTP/1.1 mycouchbase_1 | > User-Agent: curl/7.40.0-DEV mycouchbase_1 | > Host: 127.0.0.1:8091 mycouchbase_1 | > Accept: */* mycouchbase_1 | > Content-Length: 36 mycouchbase_1 | > Content-Type: application/x-www-form-urlencoded mycouchbase_1 | > mycouchbase_1 | } [36 bytes data] mycouchbase_1 | * upload completely sent off: 36 out of 36 bytes mycouchbase_1 | < HTTP/1.1 200 OK mycouchbase_1 | < Server: Couchbase Server mycouchbase_1 | < Pragma: no-cache mycouchbase_1 | < Date: Thu, 17 Dec 2015 05:30:16 GMT mycouchbase_1 | < Content-Length: 0 mycouchbase_1 | < Cache-Control: no-cache mycouchbase_1 | < 100 36 0 0 100 36 0 1820 --:--:-- --:--:-- --:--:-- 2000 mycouchbase_1 | * Connection #0 to host 127.0.0.1 left intact mycouchbase_1 | * Trying 127.0.0.1... mycouchbase_1 | % Total % Received % Xferd Average Speed Time Time Time Current mycouchbase_1 | Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) mycouchbase_1 | > POST /node/controller/setupServices HTTP/1.1 mycouchbase_1 | > User-Agent: curl/7.40.0-DEV mycouchbase_1 | > Host: 127.0.0.1:8091 mycouchbase_1 | > Accept: */* mycouchbase_1 | > Content-Length: 26 mycouchbase_1 | > Content-Type: application/x-www-form-urlencoded mycouchbase_1 | > mycouchbase_1 | } [26 bytes data] mycouchbase_1 | * upload completely sent off: 26 out of 26 bytes mycouchbase_1 | < HTTP/1.1 200 OK mycouchbase_1 | < Server: Couchbase Server mycouchbase_1 | < Pragma: no-cache mycouchbase_1 | < Date: Thu, 17 Dec 2015 05:30:16 GMT mycouchbase_1 | < Content-Length: 0 mycouchbase_1 | < Cache-Control: no-cache mycouchbase_1 | < 100 26 0 0 100 26 0 2670 --:--:-- --:--:-- --:--:-- 2888 mycouchbase_1 | * Connection #0 to host 127.0.0.1 left intact mycouchbase_1 | * Trying 127.0.0.1... mycouchbase_1 | % Total % Received % Xferd Average Speed Time Time Time Current mycouchbase_1 | Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) mycouchbase_1 | > POST /settings/web HTTP/1.1 mycouchbase_1 | > User-Agent: curl/7.40.0-DEV mycouchbase_1 | > Host: 127.0.0.1:8091 mycouchbase_1 | > Accept: */* mycouchbase_1 | > Content-Length: 50 mycouchbase_1 | > Content-Type: application/x-www-form-urlencoded mycouchbase_1 | > mycouchbase_1 | } [50 bytes data] mycouchbase_1 | * upload completely sent off: 50 out of 50 bytes mycouchbase_1 | < HTTP/1.1 200 OK mycouchbase_1 | < Server: Couchbase Server mycouchbase_1 | < Pragma: no-cache mycouchbase_1 | < Date: Thu, 17 Dec 2015 05:30:16 GMT mycouchbase_1 | {"newBaseUri":"http://127.0.0.1:8091/"}< Content-Type: application/json mycouchbase_1 | < Content-Length: 39 mycouchbase_1 | < Cache-Control: no-cache mycouchbase_1 | < mycouchbase_1 | { [39 bytes data] 100 89 100 39 100 50 3544 4543 --:--:-- --:--:-- --:--:-- 5000 mycouchbase_1 | * Connection #0 to host 127.0.0.1 left intact mycouchbase_1 | * Trying 127.0.0.1... mycouchbase_1 | % Total % Received % Xferd Average Speed Time Time Time Current mycouchbase_1 | Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) mycouchbase_1 | * Server auth using Basic with user 'Administrator' mycouchbase_1 | > POST /sampleBuckets/install HTTP/1.1 mycouchbase_1 | > Authorization: Basic QWRtaW5pc3RyYXRvcjpwYXNzd29yZA== mycouchbase_1 | > User-Agent: curl/7.40.0-DEV mycouchbase_1 | > Host: 127.0.0.1:8091 mycouchbase_1 | > Accept: */* mycouchbase_1 | > Content-Length: 17 mycouchbase_1 | > Content-Type: application/x-www-form-urlencoded mycouchbase_1 | > mycouchbase_1 | } [17 bytes data] mycouchbase_1 | * upload completely sent off: 17 out of 17 bytes mycouchbase_1 | < HTTP/1.1 202 Accepted mycouchbase_1 | < Server: Couchbase Server mycouchbase_1 | < Pragma: no-cache mycouchbase_1 | < Date: Thu, 17 Dec 2015 05:30:16 GMT mycouchbase_1 | < []Content-Type: application/json mycouchbase_1 | < Content-Length: 2 mycouchbase_1 | < Cache-Control: no-cache mycouchbase_1 | < mycouchbase_1 | { [2 bytes data] 100 19 100 2 100 17 29 251 --:--:-- --:--:-- --:--:-- 253 mycouchbase_1 | * Connection #0 to host 127.0.0.1 left intact mycouchbase_1 | /entrypoint.sh couchbase-server
Connect to CBQ (Couchbase Query tool):
docker run -it couchbase /opt/couchbase/bin/cbq -engine=http://$(docker-machine ip couchbase):8093 Couchbase query shell connected to http://192.168.99.102:8093/ . Type Ctrl-D to exit. cbq>
Learn more about Running N1QL Queries from Command Line.
Stop the server:
Remove the container:
Read more about Couchbase 4.1:
- What’s New in Couchbase Server 4.1 documentation
- Download Couchbase Server 4.1
- Couchbase Server documentation
- Release Notes for 4.1
- Couchbase ODBC and JDBC Drivers with SQL Connector
Share feedback with us at forums.couchbase.com or Stackoverflow.
Enjoy!
Reference: | Couchbase 4.1 Docker Container from our JCG partner Arun Gupta at the Miles to go 2.0 … blog. |