How to deploy Tableau Server on Linux in a Docker container

We are excited to announce that with the release of Tableau 2021.2, you can now deploy and run Tableau Server for Linux using Docker containers and Kubernetes! This unlocks a new and streamlined way to deploy and manage Tableau Server in the cloud and when embedded in applications, as well as introduces efficiencies to testing Tableau Server.

Many of our customers are embracing containers for streamlining their deployments and management of their services and applications. Containers provide a standard way to package programs for consistent deployments because an application and all its necessary files and libraries are provided by an image. In certain cases, industry regulations or corporate policies may require customers to redeploy their environment as often as every 30 to 60 days, and containers make this process simpler to manage while meeting compliance needs.

Kubernetes provides an automated way to orchestrate the lifecycle of containers, and combined with the cloud, it creates a means to dynamically deploy and scale systems based on the needs of the customer. Although this release of Tableau Server in a Container does not support auto-scaling (see below), it can be deployed and managed by Kubernetes. 

How does Tableau Server in a Container work?

Tableau Server in a Container ships as a tarball download which includes shell scripts that give you the ability to create Tableau Server Docker container images in your local environment. You’ll simply run our build-image shell script with three inputs:

  1. The Linux .rpm installer for the version of Tableau Server you want (starting with 2021.2).
  2. The installers for the drivers and connectors you need to connect to your data sources.
  3. Configuration files to set up the container.

This will generate the customized Tableau Server Docker container image on your local host, which you can then deploy as you wish, including using Kubernetes.

A diagram of Tableau Server on Linux in a Docker container at the 2021.2 release, showing the Tableau Services Manager, state, worker, and backgrounder services.

In the Tableau 2021.2 release, Tableau Server in a Container ships in one Docker image; the services shown here are grouped by function, with plans to place them in their own containers in future releases.

In terms of the end-user experience, Tableau Server in a Container will be just like a standard Tableau Server deployment. From an administration point of view, there are some differences from a standard deployment, including possibly leveraging Kubernetes to launch and maintain the cluster and storing configurations externally in .yaml files.

How will customers use Tableau Server in a Container?

Deploying in the cloud with Kubernetes

Tableau Server in a Container makes it much easier to repeatedly deploy Tableau Server just the way you want it, using Kubernetes and public cloud providers. This allows administrators to spend less time recreating deployments and more time focusing on their users.

Testing Tableau Server

Testing Tableau Server can be challenging. You need to set up the host machine, run the Tableau Server installer for Linux, install the connectors and drivers you need to talk to your data and configure the server. With Tableau Server in a container, you can bundle everything you need into one Docker image. The image can be easily used to launch the test environment and incorporated into an automated test pipeline. In addition, if you mount the data directory inside the container you can automatically remove the test data each time the image is shutdown. This can make managing your test environment easier.

Embedding Tableau Server into your application

Some customers embed Tableau Server into their own applications and services as a way to provide the power of Tableau inside their own products. Up until now, these customers were blocked from fully leveraging containers and Kubernetes because Tableau Server did not work with Docker and Kubernetes. That changes with Tableau Server in a container—customers can now fully leverage containers and Kubernetes when they deploy their applications with embedded Tableau Server!

Moving forward with containers

We have more plans for improving Tableau Server in a Container that include adding deeper integration with Kubernetes to support auto-scaling of backgrounder tasks. This will allow you to dynamically add nodes when more backgrounder work appears, and in turn, to reduce the backgrounder nodes when the work is completed. Using these techniques, you can save time and money when running Tableau Server in the cloud.

We will continue to break Tableau Server apart and place each service into its own container and each container under the control of Kubernetes. Eventually, Tableau Server will be totally containerized and completely managed by Kubernetes, giving you complete control over how you deploy and manage your clusters.

Get started with Tableau Server in a Container

The power of containers, Kubernetes and the cloud is available to our Linux customers of Tableau Server beginning with Tableau 2021.2! By deploying Tableau Server in a Container, you can now easily manage consistent deployments and automate their life cycles in the cloud.

To get started with Tableau Server in a Container, you’ll download the tableau-server-setup-tool tarball to begin creating your containers!

We would like to thank all our pre-release and limited release customers who contributed to this product! We look forward to continuing to integrate the technologies of containers and Kubernetes into Tableau Server to give our customers more capabilities to deploy it to best serve their needs.

Subscribe to our blog