lhDream - Blog

软路由系统 iStoreOS 中部署 Minecraft 服务器

软路由系统 iStoreOS 中部署 Minecraft 服务器

前言

本文将介绍如何在软路由系统 iStoreOS 中通过 Docker 部署 Minecraft 服务器。此方法同样适用于其他支持 Docker 的系统,以及运行 Java 程序的场景。值得一提的是,本方案同样兼容 OpenWrt 系统。在 OpenWrt 系统上使用时,请确保已安装并正确配置 Docker 环境,可以通过 opkg 软件包管理器安装必要依赖。此外,根据 OpenWrt 的存储和性能限制,建议将数据目录挂载到外置存储设备以提升运行效果。


环境要求

依赖环境

  • Docker:确保系统已安装并支持 Docker,如果尚未安装,请先配置 Docker 环境。

一键启动命令

以下命令将在基于 Java 17 的 Docker 容器中启动 Minecraft 服务器。服务器的数据将存储于宿主机的 /mnt/nvme0n1-4/mc/server 目录下。如果用户需要自定义数据目录或修改端口映射,可将命令中的 -v-p 参数按需调整。例如,-v /你的自定义路径:/app 可以设置新的数据存储目录,-p 你的端口:25565 可以更改服务器对外的连接端口。同时,确保命令中的 server.jar 文件路径与实际位置一致。

docker run -it --rm \
  -v /mnt/nvme0n1-4/mc/server:/app \
  -p 25565:25565 \
  bitnami/java:17 \
  java -jar /app/server.jar

命令说明

  1. docker run -it --rm:启动一个交互式、临时的容器,关闭后自动删除。
  2. -v /mnt/nvme0n1-4/mc/server:/app:将宿主机的 /mnt/nvme0n1-4/mc/server 目录挂载到容器的 /app 路径。
  3. -p 25565:25565:将容器的 25565 端口映射到宿主机,供外部客户端连接。
  4. bitnami/java:17:指定运行环境,基于 Java 17 的 Docker 镜像。
  5. java -jar /app/server.jar:执行位于容器 /app 目录下的 server.jar 文件。

注意事项

  1. 目录权限:确保宿主机的 /mnt/nvme0n1-4/mc/server 目录具有正确的读写权限。在 OpenWrt 环境下,可以使用以下命令检查和设置权限:

    # 检查目录权限
    ls -ld /mnt/nvme0n1-4/mc/server
    
    # 如果需要设置权限
    chmod -R 755 /mnt/nvme0n1-4/mc/server
    chown -R root:root /mnt/nvme0n1-4/mc/server
    

    请根据实际用户和组的需求调整 chmodchown 参数。

  2. 文件路径:根据实际情况修改命令中的 server.jar 路径为你服务器核心文件所在位置。

  3. 网络设置:如果在局域网外访问,请配置路由器的端口转发规则,将外部访问映射到宿主机 25565 端口。


通过上述方式,即可在软路由系统 iStoreOS 和 OpenWrt 系统上成功部署 Minecraft 服务器。为帮助用户更好地应对部署中的可能问题,这里列举了一些常见问题及解决方法:

  • 端口冲突
    检查宿主机是否已有其他服务占用 25565 端口,使用 netstat -tuln | grep 25565 确认。如果冲突,可在命令中更改 -p 参数,将端口映射到其他未占用的端口。

  • 性能优化
    在设备资源有限的情况下,可以考虑为 Docker 容器限制 CPU 和内存资源,例如添加 --memory--cpus 参数。此外,确保 Minecraft 的运行参数已根据服务器规模优化,例如 -Xms-Xmx 设置。

  • 数据丢失
    请定期备份数据目录,例如通过 cron 定期复制 /mnt/nvme0n1-4/mc/server 到安全位置,以防止意外情况导致数据损失。