【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"
项目结果
这是这次制作的形象。
赠品(简易操作方法)
あらかじめ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
使用者可以通过操作和更改设置来操纵容器的内部。