0

Docker部署我的世界服务器

发表于:2024-10-31 10:02:31 Docker 165
安装
使用以下命令将映像拉取到本地计算机:
  1. docker pull rdall96/minecraft-server:latest
复制代码

启动新容器:
  1. docker run -d --name minecraft -p 25565:25565 -e EULA=true rdall96/minecraft-server:latest
复制代码
新服务器将在 localhost:25565 或 <your-ip-address-here>:25565 上运行。要在家庭网络之外访问,您需要在路由器上打开一个端口。强烈建议设置 DDNS(动态 DNS)以将您的公有 IP 链接到域名,这样如果您的 IP 发生变化,您就不会断开连接或松散访问。

数据
您可以将容器路径映射到坐标文件到系统上的本地目录,以便在服务器重启和更新期间将数据保留在您选择的位置。只需将此添加到您的 docker run 命令中: -v <host-path>:/minecraft/world .
将世界数据映射到桌面上的目录的完整命令示例:
  1. docker run -d --name minecraft \
  2.     -v ~/Desktop/minecraft:/minecraft/world \
  3.     -p 25565:25565 \
  4.     -e EULA=true \
  5.     rdall96/minecraft-server:latest
复制代码

服务器属性
您可以向容器传递许多环境变量,以便自定义与 Minecraft 服务器关联的 server.properties 文件。以下是完整列表。
[td]
server.property
名字
违约
描述
允许飞行ALLOW_FLIGHT 真、假 允许用户在生存模式下使用服务器上的 flight,前提是他们安装了提供 flight 的 Mod
允许下限ALLOW_NETHER 真、假 允许玩家前往下界
困难DIFFICULTY和平、轻松、正常、困难 容易定义服务器的难度(例如生物造成的伤害以及饥饿和中毒对玩家的影响方式)
启用命令块ENABLE_COMMAND_BLOCK 真、假 启用命令块
启用状态ENABLE_STATUS 真、假 使服务器在服务器列表中显示为 “联机”
启用查询ENABLE_QUERY 真、假 启用 GameSpy4 协议服务器侦听器。用于获取有关服务器的信息
enforce-secure-profile (强制安全配置文件)ENFORCE_SECURE_PROFILE 真、假 如果设置为 true,则没有 Mojang 签名公钥的玩家将无法连接到服务器
游戏模式GAMEMODE生存, 创意, 冒险, 旁观者 生存定义游戏模式
生成结构GENERATE_STRUCTURES 真、假 定义是否可以生成结构(如村庄)
硬核** 真、假 如果设置为 true,则忽略服务器难度并将其设置为困难,如果玩家死亡,则设置为旁观模式
隐藏在线玩家HIDE_ONLINE_PLAYERS 真、假 如果设置为 true,则不会在状态请求上发送玩家列表
level-seed 级别LEVEL_SEED (任何字符串) (空)为玩家的世界设置世界种子,就像在单人游戏中一样。如果留空,则世界会生成一个随机种子
级别类型LEVEL_TYPE (任何字符串) 我的世界:普通确定生成的世界预设
最大玩家数MAX_PLAYERS (任意数字)20可以同时在服务器上玩游戏的玩家的最大数量。请注意,服务器上的玩家越多,消耗的资源就越多
莫特MOTD (任何字符串) (空)这是显示在客户端的服务器列表中名称下方的消息
在线模式ONLINE_MODE 真、假 服务器根据 Minecraft 帐户数据库检查连接的玩家。仅当玩家的服务器未连接到 Internet 时,才将此项设置为 false。
op-permission-level (操作权限级别)OP_PERMISSION_LEVEL (数字 0-4)4设置 ops 在使用 /op 时的默认权限级别。
player-idle-timeout (播放器空闲超时)PLAYER_IDLE_TIMEOUT (任意数字,以分钟为单位) 0 (禁用)如果非零,则如果玩家空闲时间超过该分钟,则会将其**出服务器
PVP的PVP 真、假 在服务器上启用 PvP (player-vs-player)
资源包RESOURCE_PACK (任何字符串) (空)资源包的可选 URI。玩家可以选择使用它。
资源包提示符RESOURCE_PACK_PROMPT (任何字符串) (空)可选,添加自定义消息,以便在使用 require-resource-pack 时显示在 resource pack 提示符上。
require-resource-packREQUIRE_RESOURCE_PACK 真、假 启用此选项(设置为 true)后,将提示玩家进行响应,如果玩家拒绝所需的包,将断开连接。
simulation-distance (模拟距离)SIMULATION_DISTANCE(3-32 之间的任意数字)10设置生物实体与玩家之间的最大距离,以便服务器进行更新,在玩家的每个方向上以块为单位(半径,而不是直径)
spawn-animalsSPAWN_ANIMALS 真、假 确定动物是否可以生成
生成怪物SPAWN_MONSTERS 真、假 确定怪物是否可以生成
spawn-**sSPAWN_**S 真、假 确定村民是否可以生成
spawn-protection (生成保护)SPAWN_PROTECTION (任意数字)16确定方形生成保护区域的边长为 2x+1。将此项设置为 0 将禁用生成保护
view-distance (查看距离)VIEW_DISTANCE (任意数字)10设置服务器向客户端发送的世界数据量,以玩家每个方向的块为单位(半径,而不是直径)
白名单WHITE_LIST 真、假 在服务器上启用白名单
(表格中中文由微软翻译自动转译)有关上述每个属性的更多详细信息,请查阅 Minecraft wiki 上的服务器属性

这些环境变量中的任何一个都可以使用参数 -e <NAME>=<VALUE> 传递给 docker start container 命令。但是,当使用大量这些属性时,建议利用环境文件。这些文件存储在您的主机上,它们将所有属性整齐地列在一个地方,然后可以使用 --env-file <file-path> 传递给 docker。
例如,以下是存储在主计算机上的 path ~/minecraft_server/properties.env 的环境文件的内容。
  1. EULA=true
  2. MOTD=Hello from Docker!
  3. DIFFICULTY=hard
  4. MAX_PLAYERS=5
  5. WHITELIST=true
复制代码
然后,此文件可用于为 Minecraft 服务器加星标,如下所示:
  1. docker run -d --name minecraft \
  2.     -v ~/Desktop/minecraft:/minecraft/world \
  3.     -p 25565:25565 \
  4.     --env-file ~/minecraft_server/properties.env \
  5.     rdall96/minecraft-server:latest
复制代码


docker hub官方文档:https://hub.docker.com/r/rdall96/minecraft-server


收藏
送赞
分享

发表回复

时光.s

TA还没有介绍自己~

1

主题

3

回帖

6

积分

江湖小虾

积分
6
话题