饥荒

端口开放

  • tcp:8082

  • udp:10999,10998

最新的docker-compose.yml

文档:https://carrot-hu23.github.io/dst-admin-go-docs/guide/docker.html

version: '3'

services:
  dst-admin-go:
    image: hujinbo23/dst-admin-go:latest
    container_name: dst-admin-go
    ports:
      - "8082:8082"
      - "10999:10999/udp"
      - "10998:10998/udp"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ${PWD}/dstsave:/root/.klei/DoNotStarveTogether
      - ${PWD}/dstsave/back:/app/backup
      - ${PWD}/steamcmd:/app/steamcmd
      - ${PWD}/dst-dedicated-server:/app/dst-dedicated-server
      - ${PWD}/dstsave/password.txt:/app/password.txt
      - ${PWD}/dstsave/dst-db:/app/dst-db
      - ${PWD}/dstsave/first:/app/first
    restart: unless-stopped

需要注意的是,第一次执行docker compose up -d 之后,等docker compose logs --tail 30 里都装完steamcmd饥荒的服务端之后,

docker compose down 一下

因为挂载目录的两个文件有问题,需要文件夹改为同名文件

/root/data/docker_data/dst/dstsave/password.txt
/root/data/docker_data/dst/dstsave/dst-db

password.txt里可以填下面内容,dst-db就一个空的文件就行

username = admin
password = 123456
displayName = admin
photoURL = 
email = xxx

然后docker compose up -d 就能用,地址是 服务器地址:8082

旧的

docker-compose.yml

version: '3.8'
services:
  dst:
    restart: always
    container_name: dst
    image: hujinbo23/dst-admin-go:1.5.0
    ports:
      - 8084:8082         # 管理后台(TCP)
      - 10999:10999/udp   # 游戏主端口(UDP)
      - 10998:10998/udp   # 游戏辅助端口(UDP)
    volumes:
      - ./dstsave:/root/.klei/DoNotStarveTogether  # 存档配置
      - ./dstsave/backup:/app/backup              # 自动备份
      - ./steamcmd:/app/steamcmd                   # SteamCMD
      - ./dst-dedicated-server:/app/dst-dedicated-server  # 游戏本体
    environment:
      - TZ=Asia/Shanghai              # 时区

  • 记得启动后放行端口

  • 然后在面板上把SteamCMD路径与dst-dedicated-server路径配好

/app/steamcmd
/app/dst-dedicated-server

查看服务器cpu主频

查看标称主频(官方参数)

lscpu | grep "Model name"
lscpu | egrep "Model name|CPU max MHz|CPU min MHz"

若输出如下,无频率信息

root@114514:~# lscpu | grep "Model name"
Model name:                           AMD EPYC 7702 64-Core Processor

则用

sudo dmidecode -t processor | grep "Speed"

没装dmidecode就安装一下

sudo apt install dmidecode -y

实时频率(单位是MHz与GHz之间是1000转换关系)

cat /proc/cpuinfo | grep "cpu MHz"

安装时查看最后10条日志

docker logs --tail 10 dst

docker desktop容器内 SteamCMD 安装失败原因

这是 SteamCMD 在容器内更新自身 / 验证 DST Dedicated Server 时无法正确执行,陷入无限循环,常见于:

  • 容器内 SteamCMD 缺失依赖 / 无法执行 DST Dedicated Server 二进制文件,导致验证失败后无限重试。

  • 使用 NTFS (C:/) 挂载路径时,容器内解压的二进制文件无执行权限,SteamCMD 校验报 silent error,陷入循环

  • steamcmd.sh 尝试 launch DST Dedicated Server,但因执行权限不足或路径错误反复 fallback 重试。

为什么是挂载方式导致的

你当前使用:

volumes:
  - C:/mydata/dst-admin-go/steamcmd:/app/steamcmd
  - C:/mydata/dst-admin-go/dst-dedicated-server:/app/dst-dedicated-server

本质:

  • Docker Desktop + WSL2 后端下,通过 9p/Plan9 挂载 Windows NTFS 路径

  • NTFS 不支持 Linux 执行权限 (x),SteamCMD 拉取 DST Dedicated Server 后无法执行验证/运行 DST 二进制。

  • 导致 SteamCMD 校验时不断失败重试,形成死循环。

docker desktop上尝试的

version: '3.8'
services:
  dst:
    restart: always
    container_name: dst
    image: hujinbo23/dst-admin-go:1.5.0
    ports:
      - 8084:8082         # 管理后台(TCP)
      - 10999:10999/udp   # 游戏主端口(UDP)
      - 10998:10998/udp   # 游戏辅助端口(UDP)
    volumes:
      - C:/mydata/dst-admin-go/dstsave:/root/.klei/DoNotStarveTogether  # 存档配置
      - C:/mydata/dst-admin-go/dstsave/backup:/app/backup              # 自动备份
      - C:/mydata/dst-admin-go/steamcmd:/app/steamcmd                   # SteamCMD
      - C:/mydata/dst-admin-go/dst-dedicated-server:/app/dst-dedicated-server  # 游戏本体
    environment:
      - TZ=Asia/Shanghai              # 时区
    deploy:
      resources:
        limits:
          cpus: "2.0"
          memory: 4G

不启动docker desktop

直接wsl,可进入正常的linux

从windos目录复制文件,这里比别的教程中多了host这个中间目录(别的都是/mnt/c/...)

这里把yml复制过去好像没啥用,这里的wsl中没docker,也没其他常用工具,还是在开启docker desktop后再Windows下启动docker,这里只是生成挂载文件目录

mkdir -p ~/data/docker_data/dst/dstsave
mkdir -p ~/data/docker_data/dst/backup
mkdir -p ~/data/docker_data/dst/steamcmd
mkdir -p ~/data/docker_data/dst/dst-dedicated-server

参数:-p 确保目录名称存在,如果目录不存在的就新创建一个。
~/../mnt/host/c/mydata/dst/docker-compose.yml ~/data/docker_data/dst/docker-compose.yml

给予递归目录所有用户所有权限

chmod -R 777 ~/data

查看权限
ls -l