For long-term deployments, use Docker Compose. This allows for more persistent and manageable configurations.
Minimal docker-compose.yaml Example
Create a docker-compose.yaml file with the following content:
services:
teamspeak:
image: teamspeaksystems/teamspeak6-server:latest
container_name: teamspeak-server
restart: unless-stopped
ports:
- "9987:9987/udp" # Voice Port
- "30033:30033/tcp" # File Transfer
# - "10080:10080/tcp" # Web Query
environment:
- TSSERVER_LICENSE_ACCEPTED=accept
volumes:
- teamspeak-data:/var/tsserver
volumes:
teamspeak-data:
name: teamspeak-data
Common Docker Compose Commands
Replace example-compose-sqlite.yaml with your actual filename:
- Start in detached mode:
docker compose -f example-compose-sqlite.yaml up -d - Check logs:
docker compose -f example-compose-sqlite.yaml logs -f - Stop:
docker compose -f example-compose-sqlite.yaml stop - Start:
docker compose -f example-compose-sqlite.yaml start - Restart:
docker compose -f example-compose-sqlite.yaml restart - Down (Remove container):
docker compose -f example-compose-sqlite.yaml down (data is kept in the volume) - Remove data volume:
docker volume rm teamspeak-data (permanently deletes all server data!)
services:
teamspeak:
image: teamspeaksystems/teamspeak6-server:latest
container_name: teamspeak-server
restart: unless-stopped
ports:
- "9987:9987/udp" # Voice Port
- "30033:30033/tcp" # File Transfer
# - "10080:10080/tcp" # Web Query
environment:
- TSSERVER_LICENSE_ACCEPTED=accept
volumes:
- teamspeak-data:/var/tsserver
volumes:
teamspeak-data:
name: teamspeak-data