Docker guide

Run a TeamSpeak 6 Server with Docker

A clean way to run the official TS6 server image on a Linux VPS, keep the server data persistent and expose the ports clients actually need.

Updated August 20, 2026 Docker
Before you start: TeamSpeak 6 Server is still a beta release. Check the official repository for release-specific notes before using a production server.

What you need

You need a Linux machine or VPS with Docker installed, enough access to publish UDP and TCP ports, and a persistent Docker volume for the server data. The official image stores its writable data under /var/tsserver/.

Start the container

This is a simple baseline for a private or test server. It publishes the default voice and file-transfer ports, accepts the server license through an environment variable and keeps the data in a named volume.

Docker
docker run -d \
  --name teamspeak-server \
  --restart unless-stopped \
  -p 9987:9987/udp \
  -p 30033:30033/tcp \
  -e TSSERVER_LICENSE_ACCEPTED=accept \
  -v teamspeak-data:/var/tsserver/ \
  teamspeaksystems/teamspeak6-server:latest

Check the first startup

Use the container logs after launch. The first startup is where you will notice configuration errors, port conflicts or information you need to administer the new server.

Logs
docker logs -f teamspeak-server

Docker Compose example

If you plan to keep the server around, Compose is easier to read and update than a long command in shell history.

compose.yaml
services:
  teamspeak:
    image: teamspeaksystems/teamspeak6-server:latest
    container_name: teamspeak-server
    restart: unless-stopped
    ports:
      - "9987:9987/udp"
      - "30033:30033/tcp"
    environment:
      TSSERVER_LICENSE_ACCEPTED: accept
    volumes:
      - teamspeak-data:/var/tsserver/

volumes:
  teamspeak-data:

Optional query ports

Do not publish query ports just because an example contains them. The TS6 configuration supports HTTP Query on TCP 10080 and SSH Query on TCP 10022, but they are optional. Enable and expose them only when you actually use those interfaces and restrict access appropriately.

Keep the port mapping consistent

File transfer is sensitive to mismatched container and host ports. If the server listens on TCP 30033 inside the container, map it consistently unless you also change the server configuration. The same principle applies when you change the default voice port.

Useful next steps

Read the TeamSpeak 6 port reference before changing your firewall, or go back to the complete TS6 server guide for Linux, Windows and configuration options.

Official source

For the current image, configuration variables and release notes, use the official TeamSpeak 6 Server repository.