最近我接触了Docker,并且觉得使用Docker来搭建Minecraft服务器可能更方便,因此我决定尝试一下。
一、选择MC的Docker镜像: 我选择了itzg大佬提供的Minecraft服务器镜像:[https://hub.docker.com/r/itzg/minecraft-server/]
编辑docker-compose.yml文件:
version: "3"
services:
mc:
image: itzg/minecraft-server
ports:
- 25565:25565
- 25575:25575
environment:
EULA: "TRUE"
VERSION: "1.20.1"
tty: true
stdin_open: true
restart: unless-stopped
volumes:
- ./minecraft-data:/data
在上面的配置中,左边的25565和25575是本机机器暴露的端口,右边的25565和25575是Docker镜像内部的端口。
“volumes”部分将容器内部的文件映射到本机上,左边的“/minecraft-data”目录需要你自己创建。你可以使用以下命令进行创建:
mkdir /minecraft-data && chmod 777 /minecraft-data
然后执行以下命令启动容器并让其在后台运行:
docker-compose up -d
- 使用以下命令查看容器是否正确启动:
docker ps
- 使用以下命令查看容器内部的日志:
docker logs <容器名称/容器ID>
- 使用以下命令实时查看容器日志,按Ctrl+c退出:
docker logs -f <容器名称/容器ID>
第一次运行服务器成功后,你可以直接使用本机IP+25565进入游戏。如果你使用离线模式,那么你需要进入/minecraft-data目录下,修改server.properties
文件中的”online
“设置为”false
“,即关闭正版验证。
现在你可以通过本机或者局域网游玩Minecraft。如果你想和小伙伴远程联机,推荐使用sakurafrp:
这是一个国内的,好用且免费的内网穿透软件。免费用户每个月有10G流量,并且还可以签到获得额外流量。但是需要进行实名认证和人脸识别。
你可以使用以下docker-compose配置来安装sakurafrp的客户端:
version: "3"
services:
sakurafrp:
image: natfrp/frpc
container_name: sakura1
restart: on-failure:5
command: -f xxxxx
在上面的配置中,“-f xxx”参数,可以在你创建的隧道的配置文件中找到。
然后启动sakurafrp客户端:
docker-compose up -d
使用以下命令查看日志,其中将包含你创建的隧道的IP+端口,以及域名+端口:
docker logs <容器ID>
日志出现创建隧道成功,并附带一个URL和IP+端口。
这里你可以将这个地址发给小伙伴,他就能直接进入你的游戏了。
这样,你就可以使用Docker部署Minecraft服务器,并通过sakurafrp的内网穿透服务与小伙伴一起游玩了。
Have a fun!