! ARCHIVED ! - Use official teamspeak-image instead: https://hub.docker.com/_/teamspeak
10K+
An image to run a TeamSpeak3 server in a docker container based on alpine. It's also possible to connect an external database.
Thanks to Travis-CI this image is pushed weekly and creates new tags if there are new versions available.
That is how to run the container without a persisent storage. I only recommend this way for testing:
docker run -d --name teamspeak -p 9987:9987/udp -p 30033:30033 -p 10011:10011 hermsi/teamspeak
I'd recommend to use docker-compose (see next paragraph). If you don't like docker-compose but you want to keep your data when restarting the container, run it as follows:
export TS_VOLUME="/var/storage/docker/volumes/teamspeak" \
&& mkdir -p "${TS_VOLUME}" \
&& chown -R 503:503 "${TS_VOLUME}"
docker run -d --restart=always --name teamspeak \
-p 9987:9987/udp -p 30033:30033 -p 10011:10011 \
-v ${TS_VOLUME}:/teamspeak \
hermsi/teamspeak
export TS_VOLUME="/var/storage/docker/volumes/teamspeak" \
&& mkdir -p "${TS_VOLUME}/teamspeak" \
&& mkdir -p "${TS_VOLUME}/mysql"
docker network create my_teamspeak
docker run -d --restart=always --name teamspeak_database --net my_teamspeak \
-v ${TS_VOLUME}/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=CHANGEME \
-e MYSQL_DATABASE=teamspeak \
-e MYSQL_USER=teamspeak \
-e MYSQL_PASSWORD=CHANGEME \
mariadb
docker run -d --restart=always --name teamspeak --net my_teamspeak \
-p 9987:9987/udp -p 30033:30033 -p 10011:10011 \
-v ${TS_VOLUME}/teamspeak:/teamspeak \
-e TS3_MARIADB_DB=teamspeak \
-e TS3_MARIADB_USER=teamspeak \
-e TS3_MARIADB_PASS=CHANGEME \
-e TS3_MARIADB_HOST=teamspeak_database \
-e TS3_MARIADB_PORT=3306 \
hermsi/teamspeak
To make your storage persisent using the latest v3 of docker-compose, I really recommend to use local-persist as follows.
Install the local-persist driver. See here for reference.
curl -fsSL https://raw.githubusercontent.com/CWSpear/local-persist/master/scripts/install.sh | sudo bash
Create docker-compose.yml file. See also here.
version: '3'
volumes:
teamspeak-data:
driver: local-persist
driver_opts:
mountpoint: ${CONTAINERVOLUME}/teamspeak
teamspeak-db-data:
driver: local-persist
driver_opts:
mountpoint: ${CONTAINERVOLUME}/var/lib/mysql
services:
database:
image: mariadb
volumes:
- teamspeak-db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
application:
image: hermsi/teamspeak
depends_on:
- database
environment:
- TS3_MARIADB_DB=${MYSQL_DATABASE}
- TS3_MARIADB_USER=${MYSQL_USER}
- TS3_MARIADB_PASS=${MYSQL_PASSWORD}
- TS3_MARIADB_HOST=database
- TS3_MARIADB_PORT=3306
volumes:
- teamspeak-data:/teamspeak
ports:
- 9987:9987/udp
- 30033:30033
- 10011:10011
Create your related .env-file. Feel free to use this boilerplate
# Docker-Compose
## project-name
COMPOSE_PROJECT_NAME=My_Teamspeak
## Volumedir
CONTAINERVOLUME=/var/storage/docker/volumes/teamspeak
# Database
## Username
MYSQL_USER=teamspeak
## Root password
MYSQL_ROOT_PASSWORD=CHANGEME_HARD
## Database
MYSQL_DATABASE=teamspeak
## User Password
MYSQL_PASSWORD=CHANGEME
Run your server using docker-compose
docker-compose up -d
Content type
Image
Digest
Size
27.4 MB
Last updated
over 5 years ago
docker pull hermsi/alpine-teamspeak