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

  • 商业转载请联系作者获得授权,非商业转载请注明出处。
  • 协议(License): 知识共享署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
  • 作者(Author): lhDream
  • 链接(URL): https://blog.luhua.site/archives/1734968846131

软路由系统 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 文件路径与实际位置一致。

bash 复制代码
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 环境下,可以使用以下命令检查和设置权限:

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

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

  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 到安全位置,以防止意外情况导致数据损失。

相关推荐
无奈笑天下8 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
火云代理11 小时前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
威嵌神州12 小时前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存
Decay__12 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
java_logo13 小时前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
xbzb14 小时前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
火云代理15 小时前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖15 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
星恒随风17 小时前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
无足鸟ICT18 小时前
【RHCA+】IO调度算法
linux·服务器