--- title: Docker搭建DST饥荒游戏专用服务器 date: 2021-07-15 10:14:59.049 updated: 2023-06-16 22:22:42.255 url: /archives/dstfordocker categories: - Docker tags: - Docker --- > 几个云大厂新用户活动白嫖了几个轻量服务器哈哈,Github上看到有人做了游戏服务器镜像,非常方便,拿过来run一下,记录一下搭建过程,写的比较简洁,适合对Linux有一点点了解或者爱折腾的同学 > 当前环境为Ubuntu18.04,1核2G,阿里云ECS # 拉取镜像 拉取镜像 ``` docker pull jamesits/dst-server ``` ![](https://moac.oss-cn-hangzhou.aliyuncs.com/blog-images/001_20200418183935-ab88bca06bb74fd39454a31db8d7b373_1599816802963.png) 启动容器 ``` docker run -v ${HOME}/.klei/DoNotStarveTogether:/data --name Cluster -d -p 10999-11000:10999-11000/udp -p 12346-12347:12346-12347/udp -it jamesits/dst-server:latest ``` # 修改游戏配置文件 启动容器后查看日志会发现报错,没关系,这是因为缺少一些配置 以下为游戏文件所在路径 ``` ~/.klei/DoNotStarveTogether/DoNotStarveTogether/Cluster_1 ``` ## cluster_token.txt 这个token需要自行去生成,打开游戏后,点击`账户>游戏>饥荒联机版的游戏服务器`,生成一个token令牌,类似于下图的字符串,把它复制下来写入到cluster_token.txt中 或者 也可以复制网址https://accounts.klei.com/并打开,使用你的steam账号登录后去生成token ![](https://moac.oss-cn-hangzhou.aliyuncs.com/blog-images/006_20200418210000-02769ca9db7a4c20a8a2a2eea87fe8e1_1599816802980.png)
## Caves 打开游戏新建一个档,配置好世界和mod,进入游戏,选人物时退出。打开你刚刚建的那个档的游戏文件,文件夹名字就是cluster_x,生成的档是第一个x就为1。把cluster_x中的Caves文件夹中的leveldataoverride.lua和modoverrides.lua文件复制到服务器.klei文件夹对应的Caves文件夹里,并且删除掉服务器Caves里的worldgenoverride.lua文件 ![](https://moac.oss-cn-hangzhou.aliyuncs.com/blog-images/004_20200418205409-f4c0a6f172164014a80879068913e684_1599816802981.png)
## Master 与Caves文件夹类似,打开cluster_x,把Master中的leveldataoverride.lua和modoverrides.lua文件复制到docker容器中的Master文件夹里,并且,同样删除掉worldgenoverride.lua文件 ![](https://moac.oss-cn-hangzhou.aliyuncs.com/blog-images/005_20200418205419-303e4d14bc5945d4adbae7924f1c8366_1599816802989.png)
## mods 使用vim打开dedicated_server_mods_setup.lua文件,再打开cluster_x中的modoverrides.lua文件,把mod的标识(就是那串数字)按照下面图片的格式写入到dedicated_server_mods_setup.lua文件中 ![](https://moac.oss-cn-hangzhou.aliyuncs.com/blog-images/002_20200418203956-b6617a3f8ac0462599088e164059d058_1599816802958.png)
## cluster.ini 这个文件是配置专用服务器的一些基本信息 cluster_name 服务器名称 cluster_description 服务器备注 cluster_password 服务器密码 cluster_language = zh 服务器语言(zh中文,en英语) PVP 游戏模式是否开启PVP max_players 房间可以容纳的人数限制 如果你不知道其它配置的作用,就不要改动,只修改上述的参数就可以了 ![](https://moac.oss-cn-hangzhou.aliyuncs.com/blog-images/03_20200418204427-0ba0042626544b3d826933581f15414f_1599816803020.png)
## 常用命令 暂停服务器 ``` docker stop Cluster_1 ``` 重启容器(重启需要一点时间大概一分钟左右完成,可以查看日志) ``` docker restart Cluster_1 ``` 查看日志(Ctrl+C退出) ``` docker logs -f --tail 20 Cluster_1 ``` 备份服务器(备份路径/usr/local/klei.tar.gz) ``` tar -zcvf /usr/local/klei.tar.gz /root/.klei/ ``` # 我遇到的一些问题,希望对你有帮助 1. 游戏更新或mod更新导致了一些问题,重启容器就会自动更新 2. 服务器进不去或者搜不到可以尝试重启容器再尝试下 3. 发现在游戏内制作物品时皮肤无效,重启容器再试下 4. 在重启容器时查看日志发现更新进度非常缓慢,可以尝试暂停容器并rm掉,重新启一个容器。如果还是非常缓慢,个人猜测可能是因为更新发布的游戏文件还没有同步至最近的节点,可以过一段时间重试重启试下 5. 我有尝试过把本地存档迁移至服务器端,但是出现了一些奇怪的问题,"例如只听到猎狗叫声,却不出现猎狗",这个没有太想深究 6. 镜像原作者jamesits/dst-server