772 字
4 分钟
通过docker compose部署teamspeak--家里云搭建

01. 环境检查与准备#

在开始之前,请确保你的系统已安装 Docker 和 Docker Compose。

检查安装情况#

Terminal window
docker -v
docker compose version

一键安装 Docker (仅限未安装用户)#

若提示命令不存在,可使用官方脚本快速安装:

Terminal window
curl -fsSL https://get.docker.com | bash -s docker

02. 使用 Docker Compose 部署#

通过容器化部署,可以极大简化环境配置和后续的迁移工作。

1. 创建工作目录#

Terminal window
mkdir teamspeak && cd teamspeak

2. 配置服务#

创建 docker-compose.yml 文件:

Terminal window
nano docker-compose.yml

将以下配置粘贴进去(注意:这里使用了 latest 标签或指定版本):

services:
teamspeak:
image: teamspeak:latest
restart: always
ports:
- "9987:9987/udp" # 语音服务 (必须是 UDP)
- "10011:10011" # ServerQuery 端口
- "30033:30033" # 文件传输端口
volumes:
- ./teamspeak_data:/var/ts3server
environment:
TS3SERVER_LICENSE: accept # 同意许可协议

可以自建数据库,但是使用数据库负载更重,建议几个朋友开黑还是用上面的sqlite

和MariaDB一起部署的配置文件
version: '3.1'
services:
teamspeak:
image: teamspeak
restart: always
depends_on:
- db
ports:
- 9987:9987/udp # 语音服务
- 30033:30033 # 文件传输端口
- 10011:10011 # ServerQuery 端口
volumes:
- ./teamspeak_data:/var/ts3server
environment:
TS3SERVER_DB_PLUGIN: ts3db_mariadb
TS3SERVER_DB_SQLCREATEPATH: create_mariadb
TS3SERVER_DB_HOST: db
TS3SERVER_DB_USER: root
TS3SERVER_DB_PASSWORD: password # 数据库密码
TS3SERVER_DB_NAME: teamspeak
TS3SERVER_DB_WAITUNTILREADY: 30
TS3SERVER_LICENSE: accept
db:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: password # 数据库密码
MYSQL_DATABASE: teamspeak
volumes:
- ./teamspeak_data/mysql:/var/lib/mysql

3. 启动容器#

Terminal window
docker compose up -d

4. 获取管理员凭据 (关键步骤)#

容器启动后,你需要获取第一次运行生成的管理员 Token。

Terminal window
docker compose logs
WARNING

在日志中寻找 token 和 password。 当你第一次连接服务器时,客户端会要求输入该 token 以获取 Server Admin 权限。请务必保存,丢失后找回较麻烦,需要查询数据库找回。


03. 远程访问:防火墙与 DDNS#

由于“家里云”通常位于内网且 IP 动态变化,需要进行以下两步操作:

端口转发 (Port Forwarding)#

进入路由器后台,将以下端口映射至运行设备的内网 IP:

端口协议用途
9987UDP核心语音流(必开)
10011TCP管理查询
30033TCP文件传输

动态域名解析 (DDNS)#

由于家用宽带公网 IP 会变动,建议使用 DDNS 方案:

  • 推荐方案:使用 ddns-go 镜像配合 Cloudflare 或阿里云 API。
  • 访问方式:配置完成后,你和队友只需通过 yourdomain.com:9987 即可稳定连接。
  • 域名注册: DDNS需要自备域名,可以到namecheap或者腾讯云买一个低价年抛域名,或者通过 https://dash.domain.digitalplat.org/signup?ref=EnelTVCGVW 免费白嫖一个qzz.io的二级域名

04. 常见问题 (FAQ)#

  • Q:镜像拉取失败怎么办?
    • A:由于国内网络环境,建议配置国内 Docker 镜像加速源,或在宿主机全局挂载代理。
  • Q:为什么队友听不到我说话?
    • A:检查路由器是否放行了 UDP 协议的 9987 端口。TeamSpeak 的语音流走的是 UDP 而非 TCP。
  • Q:数据会丢失吗?
    • A:我们在 volumes 中配置了挂载点,所有频道设置和用户权限都保存在 ./teamspeak_data 文件夹下,即使容器销毁,数据依然保留。

Happy Gaming! 📢

通过docker compose部署teamspeak--家里云搭建
https://fuwari.vercel.app/posts/20260401-ts-depoly/
作者
oldthief
发布于
2026-04-01
许可协议
CC BY-NC-SA 4.0