Couchbase Server 4.0 was recently released and can be downloaded and easily installed. Getting Started with Couchbase explains in very simple and easy steps on how to get started with Couchbase.  But when living in a container world, everything is a Docker image. And Couchbase also has a Docker image.

Couchbase Logo


This blog will explain how you can easily start a Couchbase Server 4.0 as a Docker image.

Install and Configure Docker

Docker is natively supported on Linux. So ‘apt get docker-engine’ on Ubuntu or ‘yum install docker-engine’ on CentOS will get you ready to use Docker.

On Mac or Windows, this is achieved by install Docker Machine. Docker Machine to Setup Docker Host explain in detail on how to install and configure Docker Machine.

Here is a brief summary to get you started with Docker:

  1. Download Docker client:
    > curl -L > /usr/local/bin/docker
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 8664k  100 8664k    0     0  4139k      0  0:00:02  0:00:02 --:--:-- 4139k
    > chmod +x /usr/local/bin/docker
  2. Download Docker Machine script:
    > curl -L > /usr/local/bin/docker-machine
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   586    0   586    0     0   1103      0 --:--:-- --:--:-- --:--:--  1103
    100 11.8M  100 11.8M    0     0  2733k      0  0:00:04  0:00:04 --:--:-- 3458k
    > chmod +x /usr/local/bin/docker-machine
  3. Create Docker Machine host:
    > docker-machine create --driver=virtualbox default
    Creating VirtualBox VM...
    Creating SSH key...
    Starting VirtualBox VM...
    Starting VM...
    To see how to connect Docker to this machine, run: docker-machine env default
  4. Setup Docker client to connect to this host:
    > eval $(docker-machine env default)

Now your current shell is configured where the Docker client can run containers on the Docker Machine.

Run Couchbase Docker Container

  1. Starting a Docker container on this machine is pretty straight forward. The CLI downloads the image from Docker Hub and then runs it on the Machine:
    > docker run -d -p 8091:8091 couchbase
    Unable to find image 'couchbase:latest' locally
    latest: Pulling from library/couchbase
    ba2b457ecfb2: Pull complete 
    26180b0fe8fb: Pull complete 
    edd7c1974a70: Pull complete 
    57bca5139a13: Pull complete 
    5eb89c4f7e1a: Pull complete 
    46b6bac823d2: Pull complete 
    6845430f4274: Pull complete 
    92d9ea0b826c: Pull complete 
    c02a4d9a78c4: Pull complete 
    904ac92614ac: Pull complete 
    e924e7d4b1dc: Pull complete 
    bbe8a967cf05: Pull complete 
    35fb2c30481e: Pull complete 
    68eb883fd0c7: Pull complete 
    fe1b3bdb1e2f: Pull complete 
    library/couchbase:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
    Digest: sha256:388b710593a7a643c49bf38c4b16eb8e175dccac093e9aa8dea5bd2e2d326efd
    Status: Downloaded newer image for couchbase:latest

    In this CLI, `run` command runs the container using the image id specified as the last argument, `-p` publish port `8091` from the container to `8091` on the Docker Machine, `-d` runs the container in background and prints the container id.

  2. Watch the container status as:
    > docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                           NAMES
    5b789d231948        couchbase           "/ couch"   7 minutes ago       Up 7 minutes        8092/tcp, 11207/tcp, 11210-11211/tcp,>8091/tcp, 18091-18092/tcp   sick_yonath
  3. Find out IP address of the Docker Machine:
    > docker-machine ip default
  4. Access the setup console at, make sure to specify the exact IP address in your case. This will show the screen:Couchbase Docker Getting Started 1

Configure Couchbase Server

First run of Couchbase Server requires you to configure it, lets do that next!

  1. Click on the Setup button. Scroll to bottom of the screen, change the Data RAM Quota to 500 (MB-16530), and click on Next.Couchbase Docker Getting Started 2
  2. In Couchbase, data is stored in buckets. The server comes pre-installed with some sample buckets. Select the `travel-sample` bucket to install it and click on `Next`.Couchbase Docker Getting Started 3
  3. Configure the bucket by taking defaults:Couchbase Docker Getting Started 4
    Click on ‘Next’.
  4. Enter personal details, agree to T&C, click on ‘Next’:Couchbase Docker Getting Started 5
  5. Provide administrator credentials:Couchbase Docker Getting Started 6Click on ‘Next’ to complete the installation. This brings up Couchbase Web Console:Couchbase Docker Web Console

It takes a few seconds for the `travel-sample` bucket to be fully loaded. And once that is done, your Couchbase server is ready to roll!

You can also watch the following presentation from Couchbase Connect:

Talk to us at Couchbase Forums or @couchbase.

Getting Started with Couchbase Using Docker

| Java Language| 251 views | 1 Comment
About The Author
- Arun Gupta is the vice president of developer advocacy at Couchbase. He has been building developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of a best-selling book, an avid runner, a globe trotter, a Java Champion, and a JUG leader, he is easily accessible at @arungupta.

1 Comment

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>