【Docker】一个初学者尝试创建Minecraft服务器

首先

这是一个从制作Dockerfile到启动Minecraft服务器的备忘录。这里并没有系统化的关于处理Docker的知识。抱歉。

如果你方便的话,请浏览我们的作品,以便让每个人都能使用。

在这篇文章中,用户名称被设为kdrvk,图像名称是minecraft-server,标签名称是最新版本。

Dockerfileを作成

# 空のDockerfileを作成
$ touch Dockerfile

# Dockerfileを編集
$ vi Dockerfile
# ディストリビューションを指定する
FROM ubuntu:22.04

# パッケージを更新してOpenJDKをインストール
# minecraftというアカウントを作成
RUN apt -y update && apt -y install openjdk-17-jre
RUN useradd -m -s /bin/bash minecraft

# ディレクトリを/home/minecraftに移動
WORKDIR /home/minecraft

# 公式サイトよりserver.jarをダウンロード
# server.jarの所有者とパーミッションを変更
ADD https://piston-data.mojang.com/v1/objects/f69c284232d7c7580bd89a5a4931c3581eae1378/server.jar .
RUN chown minecraft:minecraft server.jar && chmod 644 server.jar

# ユーザーをminecraftに変更
USER minecraft

# server.jarを実行しeula.txtを生成
# eula.txt内のfalseをtrueに書き換える
RUN java -Xmx1024M -Xms1024M -jar server.jar nogui
RUN sed -i "s/false/true/" eula.txt

# コンテナを展開するときにserver.jarを実行する
CMD java -Xmx1024M -Xms1024M -jar server.jar nogui

创建 Dockerfile 并将上述文本写入其中。

建立形象

$ docker build -t <イメージ名>:<タグ名(オプション)> .
$ docker build -t kdrvk/minecraft-server:latest .

カレントディレクトリのDockerfileからイメージをビルドします。

Successfully built 2d4458401b49
Successfully tagged kdrvk/minecraft-server:latest
$ docker image ls
REPOSITORY               TAG       IMAGE ID       CREATED         SIZE
kdrvk/minecraft-server   latest    2d4458401b49   4 minutes ago   791MB
ubuntu                   22.04     2dc39ba059dc   2 weeks ago     77.8MB

图像已经构建完成。

启动Minecraft服务器

$ docker run <イメージ名>:<タグ名(オプション)>
$ docker run -it -p 25565:25565 --name minecraft kdrvk/minecraft-server:latest

从构建的镜像中启动容器。

-itはコンテナの中に入って標準入力をするのに必要です。
-pで<ホスト側のポート>:<コンテナ側のポート>を指定しています。
–name で名前をつけておくとコンテナを削除するときとかに便利です。

[14:33:41] [Server thread/INFO]: Done (91.733s)! For help, type "help"
2022-09-21_00.30.30.png

项目结果

 

这是这次制作的形象。

赠品(简易操作方法)

あらかじめEULAに同意してポート25565を開放してください。

$ docker run -it -p 25565:25565 --name minecraft kdrvk/minecraft-server:latest

Minecraft Serverを起動

stop

Minecraft Serverを停止

$ docker start minecraft

重新开启Minecraft服务器

$ docker attach minecraft

在控制台上附加

$ docker exec -it minecraft bash

使用者可以通过操作和更改设置来操纵容器的内部。

广告
将在 10 秒后关闭
bannerAds