在Docker上运行PocketMine-MP
PocketMine-MP可以在Docker容器上运行。
Docker是开发者和系统管理员用于构建、运行和共享应用程序的容器化平台。
让我们安装和设置Docker
上記のリンクからWindows/MacでのDocker Desktopがインストールできます。
インストールが終わった後に起動するとチュートリアルが始まります。
一通りやっておくと、この後の操作が理解しやすくなると思います。
Windows Homeの場合はWSL2を有効にする必要があります。詳細は
https://docs.docker.jp/docker-for-windows/install-windows-home.html
を確認してください。
DockerでPocketMine-MPを動かしてみよう
以下是正题。让我们实际在Docker上运行PocketMine-MP。
PocketMine-MP官方在以下链接中发布了Docker镜像。
这篇英文版应该不会太难的内容。
1. 下载Docker镜像
在终端或者Windows终端上执行docker pull pmmp/pocketmine-mp命令来下载Docker。
2.プラグイン用のディレクトリとデータ用のディレクトリを作成する
サーバーのデータを保持しておくディレクトリを決めて、その中にpluginsディレクトリとdataディレクトリを作ります。
3. 启动容器。
Windowsの場合
docker run -it -p 19132:19132/udp -v {上で決めたディレクトリへのパス}\\data:/data -v {上で決めたディレクトリへのパス}\\plugins:/plugins pmmp/pocketmine-mp
を
Mac/Linuxの場合は端末上で上のディレクトリを開いた状態で、
docker run -it -p 19132:19132/udp -v $PWD/data:/data -v $PWD/plugins:/plugins pmmp/pocketmine-mp
を実行して起動します。
うまく起動するとサーバーのログが見れるはずです。
そのほかは通常のPocketMine-MPと同じように使うことができます。開けるポートが違うときには-pオプションでそれに対応するポートをしてしてください。
方案:使用MySQL插件使用
本章将考虑使用docker-compose来更好地利用Docker元素来构建服务器。特别是考虑与使用MySQL插件一起使用。
写入docket-compose.yml文件。
version: "3"
services:
pocketmine-server:
image: pmmp/pocketmine-mp:latest # どのイメージを使うか、今回は最新版イメージを指定した。
ports:
- "19132:19132/udp"
depends_on:
- mysql # mysqlサービスに対応していることを表す。
volumes:
- 'C:\Devs\plugin-dev\MyChunkLand:/plugins' # 一例、絶対パスで実機:コンテナ上のディレクトリを対応させる。
- 'C:\Devs\plugin-dev\data:/data'
mysql:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: password # rootユーザーのパスワードを指定する
ports:
- "3308:3306" # Docker上のmysqlコンテナのポート3306を実機上のポート3308に対応させる
将类似上述的文件描述保存为docker-compose.yml文件。
使用docker-compose启动
在将该目录设置为当前目录的情况下,执行以下操作,可以启动pocketmine-server容器和mysql容器。
docker-compose up
3. プラグインで設定をする
在这种状态下,先停止服务器,然后进行插件的设置。
例如,您可以按照以下设置使用Ree-jp-minecraft的StackStorage插件(GitHub链接)来实现相应功能。
database:
# mysql or sqlite
type: mysql # MySQLを選択
# Edit these settings only if you choose "sqlite".
sqlite:
# The file name of the database in the plugin data folder.
# You can also put an absolute path here.
file: data.sqlite
# Edit these settings only if you choose "mysql".
mysql:
host: mysql #ホストをコンテナ名に変更
# Avoid using the "root" user for security reasons.
username: StackStorage #データベース内のユーザー名に対応
password: password #対応するパスワードへ
# Database name
schema: StackStorage
# The maximum number of simultaneous SQL queries
# Recommended: 1 for sqlite, 2 for MySQL. You may want to further increase this value if your MySQL connection is very slow.
worker-limit: 1
只需一种选项
从主机端,可以通过3308端口访问MySQL。
通过此插件,访问数据库并执行以下命令即可完成一系列的初始设置。
CREATE DATABASE StackStorage;
CREATE USER StackStorage IDENTIFIED BY 'password';
GRANT ALL on StackStorage.* to StackStorage;
只要按照插件的指示正确设置主机、用户、密码和模式,您可以使其他插件正常运作。
总结
-
PocketMine-MPはDockerコンテナ上で動作できる。
Dockerを使うとMySQLやその他の対応するサービスを一括で管理できる。
Docker支持各种容器,有助于批量管理服务器。现在就来试试吧!