别再手动折腾了!用Docker在Linux上5分钟搞定Terraria TShock服务器(含国内镜像加速)

张开发
2026/4/9 3:05:27 15 分钟阅读

分享文章

别再手动折腾了!用Docker在Linux上5分钟搞定Terraria TShock服务器(含国内镜像加速)
5分钟极速部署Terraria服务器Docker化方案与国内镜像加速实战每次想和朋友联机玩Terraria最头疼的就是搭建服务器。传统方式需要手动安装运行环境、配置端口、解决各种依赖问题往往折腾半天还没搞定。现在用Docker容器技术配合国内镜像加速5分钟就能拉起一个稳定的TShock服务器。1. 为什么选择Docker部署Terraria服务器Terraria作为一款经典的沙盒游戏其官方服务器程序功能相对基础。TShock作为最流行的第三方服务端提供了权限管理、插件系统等增强功能但配置过程对新手并不友好。传统部署方式通常需要手动安装.NET运行时环境下载并解压TShock服务端包配置防火墙规则开放端口处理各种依赖库缺失问题而Docker方案的优势在于环境隔离所有依赖打包在容器内不会污染主机环境一键部署无需手动安装配置拉取镜像即可运行版本管理可以轻松切换不同版本的TShock服务端资源隔离限制容器资源使用避免服务器过载# 传统部署 vs Docker部署步骤对比 传统部署 1. 安装.NET Core运行时 2. 下载TShock压缩包 3. 解压并配置启动参数 4. 手动处理各种依赖问题 Docker部署 1. 拉取镜像 2. 运行容器2. 准备工作配置国内Docker镜像加速国内直接拉取DockerHub镜像速度很慢我们需要先配置镜像加速。以下是目前可用的国内镜像站镜像站名称地址稳定性中科大镜像https://docker.mirrors.ustc.edu.cn★★★★☆阿里云镜像https://你的ID.mirror.aliyuncs.com★★★★★网易镜像https://hub-mirror.c.163.com★★★★☆提示阿里云镜像需要登录控制台获取个人专属加速地址配置步骤创建或修改daemon.json配置文件sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [ https://docker.mirrors.ustc.edu.cn, https://hub-mirror.c.163.com ] } EOF重启Docker服务使配置生效sudo systemctl daemon-reload sudo systemctl restart docker验证配置是否成功docker info | grep Mirrors -A 2正常应该能看到配置的镜像站地址。3. 快速部署TShock服务器现在我们来实际部署Terraria服务器。推荐使用ryshe维护的Docker镜像它集成了TShock的最新版本。3.1 拉取镜像根据你的Terraria版本选择合适的镜像标签# 拉取最新稳定版 docker pull ryshe/terraria:latest # 或者指定具体版本 docker pull ryshe/terraria:tshock-1.4.4.9-5.2.33.2 创建数据目录为了避免容器删除后世界数据丢失我们需要将游戏数据持久化存储mkdir -p ~/terraria/{worlds,plugins,config}目录结构说明worlds: 存放游戏世界文件(.wld)plugins: 存放TShock插件config: 存放服务器配置文件3.3 启动服务器有三种常用的启动方式根据你的需求选择方式一交互式创建新世界推荐新手docker run -it --rm \ -p 7777:7777 \ -v ~/terraria/worlds:/root/.local/share/Terraria/Worlds \ ryshe/terraria启动后会进入交互界面按提示创建新世界或选择已有世界。方式二后台运行指定世界docker run -d \ --nameterraria-server \ -p 7777:7777 \ -v ~/terraria/worlds:/root/.local/share/Terraria/Worlds \ -e WORLD_FILENAMEmyworld.wld \ ryshe/terraria方式三完整配置适合进阶用户docker run -d \ --nameterraria-server \ -p 7777:7777 \ -v ~/terraria/worlds:/worlds \ -v ~/terraria/plugins:/plugins \ -v ~/terraria/config:/tshock \ -e WORLD_PATH/worlds/myworld.wld \ -e MAX_PLAYERS10 \ -e MOTD欢迎来到我的Terraria服务器 \ ryshe/terraria4. 服务器管理与进阶配置4.1 基本管理命令查看服务器日志docker logs terraria-server -f重启服务器docker restart terraria-server停止服务器docker stop terraria-server4.2 权限管理TShock提供了完善的权限系统。首次启动时控制台会显示一个临时管理码[Server API] Setup code: 123456 (use /setup 123456 to gain admin rights)在游戏中输入/setup 123456获取临时管理权限然后创建永久管理员账号/user add admin mypassword owner常用权限组说明组名权限级别典型权限guest最低仅能聊天、移动default普通玩家基础游戏权限vip高级玩家召唤Boss、使用虫洞admin管理员踢人、传送、生成怪物owner服主所有权限4.3 性能优化对于多人服务器建议添加以下启动参数限制资源使用docker run -d \ --nameterraria-server \ --memory2g \ --cpus1 \ -p 7777:7777 \ ryshe/terraria4.4 插件安装TShock有丰富的插件生态。安装插件只需将.dll文件放入plugins目录下载插件如Essentials.dll放入~/terraria/plugins/目录重启服务器wget -P ~/terraria/plugins/ https://github.com/Pryaxis/Plugins/raw/master/Essentials.dll docker restart terraria-server5. 常见问题排查问题一无法连接服务器检查服务器防火墙是否开放7777端口确认Docker容器正常运行docker ps查看服务器日志是否有错误docker logs terraria-server问题二世界保存失败确保挂载目录有写权限chmod -R 777 ~/terraria检查磁盘空间df -h问题三插件不生效确认插件版本与TShock版本兼容检查插件是否放入正确的plugins目录查看日志中的插件加载信息问题四服务器卡顿限制玩家人数-e MAX_PLAYERS8增加内存限制--memory4g关闭不必要的插件我在实际运营服务器时发现定期重启比如每天一次能有效避免内存泄漏问题。可以使用cron设置定时任务0 4 * * * docker restart terraria-server这样每天凌晨4点会自动重启服务器维护期间可以在MOTD中提前告知玩家。

更多文章