Docker部署7 Days To Die(七日杀)

搜索镜像

docker search steamcmd

拉取镜像

本次使用cm2network/steamcmd镜像去部署游戏服务器;使用steamcmd/steamcmd镜像亦可,二者操作方面并无太大区别;

docker pull cm2network/steamcmd:latest

注:镜像Tag可通过Docker Hub查看。

相关配置

  • Web仪表盘端口(非必要端口)
-p 8080:8080
  • Telnet端口(非必要端口)
-p 8081:8081
  • Alloc模块端口(非必要端口),默认Web仪表盘端口+2
-p 8082:8082
  • 服务器tcp端口(必要端口),局域网端口请保持在26900 ~ 26905或27015 ~ 27020 的范围内
-p 26900:26900
  • 服务器udp端口(必要端口),默认为服务器tcp端口及向后偏移3位,仅在服务器在线玩家交互过多时启用
-p 26901:26901/udp -p 26901:26901/udp -p 26902:26902/udp -p 26903:26903/udp
  • 挂载steamcmd数据以及7 Days To Die服务器数据
-v /docker/7dtd:/home/server

运行容器

启动容器,并进入容器交互终端;物理机或云服务器需放行端口

docker run -it --name 7dtd -p 8080:8080 -p 8081:8081 -p 8082:8082 -p 26900:26900 -p 26900:26900/udp -p 26901:26901/udp -p 26902:26902/udp -p 26903:26903/udp -v /docker/7dtd:/home/server cm2network/steamcmd bash

下载服务器

执行steamcmd命令匿名登录并安装7 Days To Die服务器,如有问题参考SteamCMD文档

./steamcmd.sh +force_install_dir /home/server +login anonymous +app_update 294420 -beta latest_experimental validate +quit

运行服务器

编辑配置文件,执行startserver脚本启动服务器;

./startserver.sh -configfile=serverconfig.xml

GPU支持

服务器在启动过程中,会调用GPU去进行着色器渲染,而docker容器是无法直接访问GPU的,因此会产生以下类似的报错;

ERROR: Shader Sprites/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
ERROR: Shader Sprites/Mask shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
ERROR: Shader Legacy Shaders/VertexLit shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
WARNING: Shader Unsupported: 'Legacy Shaders/Diffuse' - All subshaders removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
ERROR: Shader Legacy Shaders/Diffuse shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
WARNING: Shader Unsupported: 'Legacy Shaders/Diffuse' - All subshaders removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
WARNING: Shader Unsupported: '7DTD/Cube_UI_Frame' - All subshaders removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
ERROR: Shader 7DTD/Cube_UI_Frame shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
WARNING: Shader Unsupported: '7DTD/Cube_UI_Frame' - All subshaders removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
ERROR: Shader GUI/Text Shader shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
WARNING: Shader Unsupported: '7DTD/Cube_UI_Glow' - All subshaders removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
ERROR: Shader 7DTD/Cube_UI_Glow shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
WARNING: Shader Unsupported: '7DTD/Cube_UI_Glow' - All subshaders removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
ERROR: Shader Unlit/Transparent Colored shader is not supported on this GPU (none of subshaders/fallbacks are suitable)

如物理机或云服务器无GPU,忽略此问题即可。若需要为7 Days To Die服务器提供GPU支持,请先安装CUDA。并在运行容器步骤时,开启GPU准虚拟化支持

docker run -it --name 7dtd --gpus=all --net=host -v /docker/7dtd:/home/server cm2network/steamcmd bash

SteanNetworking

无论是使用云服务器还是物理机部署7 Days To Die服务的前提是需要有公网IP,但国内IPV4资源紧张,如果是使用家用网络的情况下,客户端访问不到NAT路由器后的服务器;若想解决这种问题,就需要使用NAT穿透技术,普遍的解决方案是内网穿透(FRP)、虚拟专用网络(VPN)、对等网络(P2P)等。

7 Days To Die服务器提供了两种网络模式:LiteNetLibSteamNetworkingLiteNetLib模式适用于公网IP直连,服务器与客户端不存在NAT路由器的情况;而SteamNetworking模式则适用于服务器和客户端存在NAT路由器的情况,该模式实现了P2P通讯。

修改serverconfig.xml配置文件中的ServerDisabledNetworkProtocols的值为LiteNetLib

<property name="ServerDisabledNetworkProtocols"	value="LiteNetLib"/>

运行服务器,服务器启动之后,便可在客户端服务器面板看到对应信息,此时面板展示的服务器IP为动态公网IP。如果不想暴露自身IP,可使用内网穿透工具,作一层套壳,当第一次使用内网穿透服务的IP访问7 Days To Die服务器后,客户端服务器面板展示的IP即为内网穿透服务的IP。

部署MinIO时,如果出现"unable to read 'format.json'"的错误提示,通常是由于MinIO配置文件(format.json)无法被读取所致。 首先,需要确认以下几点: 1. 确保你已经正确安装了Docker和MinIO。 2. 检查你是否已经正确设置了MinIO配置文件的路径。一般来说,MinIO配置文件位于/var/lib/minio目录下。你可以通过以下命令查看该配置文件的路径: ``` docker inspect minio容器名或容器ID | grep -i "config.json" ``` 如果路径不是/var/lib/minio,需要在Docker启动命令中正确设置MinIO的配置文件路径。 ``` docker run -p 9000:9000 -v /var/lib/minio:/root/.minio minio/minio server /data ``` 这里的`/var/lib/minio`是主机(宿主机)上MinIO配置文件的路径,`/root/.minio`是容器内MinIO配置文件的路径,`/data`是要挂载的存储路径。 如果你正在使用Docker Compose,也可以在compose文件中设置正确的挂载路径,类似于以下示例: ```yaml ... volumes: - /var/lib/minio:/root/.minio - /path/to/data:/data ... ``` 3. 如果以上步骤都没有解决问题,可以尝试重新创建MinIO容器。首先停止并删除原来的容器,然后重新运行启动命令: ``` docker stop minio容器名或容器ID docker rm minio容器名或容器ID docker run -p 9000:9000 -v /var/lib/minio:/root/.minio minio/minio server /data ``` 这样可以确保重新创建容器时使用了正确的配置文件路径。 以上是关于"Docker部署MinIO unable to read 'format.json'"错误的解决方法。希望能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值