docker搭建七日杀服务器

烟雨 发布于 2024-06-08 125 次阅读


前言

我是特别喜欢在docker里面搭建服务的,它比较好维护,也可以隔离 ,性能也没有降低,易于管理 那我们开始吧

安装docker

#这里以ubuntu为例 安装过的就跳过
sudo -i
apt update
apt install docker.io
#拉取steamcmd镜像并进入容器
docker pull cm2network/steamcmd:root
#设置卷
docker volume create steamcmd #steamcmd 安装目录
docker volume create 7dtd     # 七日杀安装目录
#运行steamcmd容器
docker run -it \
-v "7dtd:/home/steam/Steam" \
-v "steamcmd:/home/steam/steamcmd" \
--name 7dtd \
--network host \
cm2network/steamcmd:root bash
#切换用户
su steam
#运行steamcmd
ls
./steamcmd.sh
#匿名登录并下载七日杀
login anonymous
#一个是稳定版一个是测试版 
app_update 294420 vilidate 
app_update 294420 -beta latest_experimental validate 
#下载完毕后退出容器
exit
exit
exit

上传模组Mods

#两种方法你可以二选一
#方法一 用FTP软件上传你的Mods模组到以下目录 请保持你的模组是zip格式 且里面只有一个Mods文件夹
/var/lib/docker/volumes/7dtd/_data/steamapps/common/7 Days to Die Dedicated Server
#安装zip[有Y按y安装]并解压模组
apt install zip
cd /var/lib/docker/volumes/7dtd/_data/steamapps/common/'7 Days to Die Dedicated Server'
unzip *.zip
#方法二 用远程下载的方式  如果你下载完成他不是zip格式请给他用FTP软件改成zip格式
#安装zip[有Y按y安装]并解压模组
apt install zip
#进入七日杀服务器根目录
cd /var/lib/docker/volumes/7dtd/_data/steamapps/common/'7 Days to Die Dedicated Server'
#我是没后缀的 开始下载Mods模组 我这个只是个示例链接 
wget "https://yanyu.top/PERSONCLOUD/a0e9454f-61da-441a-a56b-00f944b8f91b?response"
unzip *.zip


#示例 没后缀.zip 用这个方式下载 
wget "https://yanyuserver.top/%B4A2191%E6E4%"
#示例 有后缀.zip直接下载
wget https://xxxx/mods.zip

配置并运行七日杀服务器

上传完模组我们修改serverconfig.xml  建议下载下来修改修改完上传覆盖
#开启七日杀服务器 
nohup ./startserver.sh -configfile=serverconfig.xml &

重启服务器需要重新输入以下命令

docker restart 7dtd
docker exec -it 7dtd /bin/bash
cd /home/steam/Steam/steamapps/common/'7 Days to Die Dedicated Server'
nohup ./startserver.sh -configfile=serverconfig.xml &
#黑暗降临的配置 你们不要输入 把DarknessFallsServerConfig.xml修改好放到七日杀服务器根目录
nohup ./startserver.sh -configfile=DarknessFallsServerConfig.xml &

常见问题

注意 开放服务器端口 和关闭防火墙

如果你没有root账号 导致FTP进不去docker目录 解决方法

先给docker文件夹目录权限
chmod 777 /var/lib/docker
chmod 777 /var/lib/docker/volumes  #这个是七日杀文件目录
chmod 777 /var/lib/docker/overlay2 #这个是存档目录

关于很多人找不到存档在哪我来说说 存档没在固定目录里面需要输入以下命令找到存档

# 查找你的地图名字 我的地图名叫DFalls-Navezgane 
find / -name DFalls-Navezgane
可以看到59e开头的就是你的存档 diff是你实际的存档 merged则是容器内的存档 只需修改diff即可
root@iZ0jlf20w2ns8ucvs57f11Z:~# find / -name DFalls-Navezgane
/var/lib/docker/volumes/7dtd/_data/steamapps/common/7 Days to Die Dedicated Server/Mods/0-DarknessFallsCore/Worlds/DFalls-Navezgane
/var/lib/docker/overlay2/59e04089bda496b050b40048c1618703c0d1a5ddc658e4c934ac32687d673da9/diff/root/.local/share/7DaysToDie/Saves/DFalls-Navezgane
/var/lib/docker/overlay2/59e04089bda496b050b40048c1618703c0d1a5ddc658e4c934ac32687d673da9/merged/root/.local/share/7DaysToDie/Saves/DFalls-Navezgane
 

此作者没有提供个人介绍。
最后更新于 2024-06-25