在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支持各种容器,有助于批量管理服务器。现在就来试试吧!

请点击此处阅读 Docker 入门指南。
bannerAds