この記事では、Dockerをインストールして、オープンソースのゲームサーバー「Nakama Server」をインストールする方法について書いていきます。
目次
環境
今回のインストールを試した環境とバージョンは以下のとおりです
- Windows 10 64ビット Pro
- Docker Desktop 4.11.1
Dockerのインストール手順
インストーラーを入手
インストーラーは以下のページから取得します。

「Docker Desktop for Windows」をクリックすると、ダウンロードが開始します
そしてダウンロードした「Docker Desktop Installer.exe」を実行します。
インストール
なお、システム要件としては、以下のとおりです
- Windows 10 64ビット
- 4GBのシステムメモリ
- ハードウェア仮想化が BIOS設定で有効とされていること
最後の条件がよくわかりませんが、普通にWindowsが動いていれば大丈夫なのかなと…
まずは基本設定のようです。

WSL2は有効にした方が良さそうなので、そのままにしておきます。ショートカットも不要なら後で削除すればいいので、そのまま「OK」で良いのかなと…
するとインストールが始まるので、しばし待ちます…

インストールが完了すると「Close and restart」が表示されるので、これをクリックしてPCを再起動します

インストールが完了すると「Close and restart」が表示されるので、これをクリックしてPCを再起動します
そして再起動が完了するとDockerが立ち上がって、同意を求められるので「I accept the terms」にチェックを入れて、「Accept」をクリックします

しばらくすると「WSL 2 installation is incomplete.」と表示されることがあります。

WSL 2のインストール
「WSL 2 installation is incomplete.」と表示される場合は、WSLの更新プログラムが必要とのことなので、ダイアログのリンク「https://aka.ms/wsl2kernel」をクリックします
そしてリンク先の手順通り、WSLの更新プログラムのインストーラーをダウンロードして、インストールを行います。(wsl_update_x64.msiを実行する)

「Next」ボタンをクリックして Linuxカーネルをインストールします。

「Finish」ボタンを押してインストールを完了します

WSL 2の設定(※これは不要かもしれません)
先程のページ (https://aka.ms/wsl2kernel) の指示に従い、PowerShellを起動します

そして以下のコマンドを実行します
> wsl --set-default-version 2
実行すると、
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
この操作を正しく終了しました。
と表示されれば、WSL 2が有効になる…ようです
このウィンドウが残っていれば「Restart」でDockerを再起動します

残っていなければ、デスクトップのショートカットからDockerを起動すると…

このような画面が表示されれば、Dockerが動いていそうな感じです
Nakama Serverのインストール
オープンソースのゲーム用サーバー「Nakama Server」をインストールします
以下のページを参考にしました
インストール場所は、とりあえずデスクトップに作成するとします
デスクトップに「nakama」フォルダを作成し、「docker-compose.yml」を作成します
version: '3'
services:
cockroachdb:
image: cockroachdb/cockroach:latest-v20.2
command: start-single-node --insecure --store=attrs=ssd,path=/var/lib/cockroach/
restart: "no"
volumes:
- data:/var/lib/cockroach
expose:
- "8080"
- "26257"
ports:
- "26257:26257"
- "8080:8080"
nakama:
image: registry.heroiclabs.com/heroiclabs/nakama:3.12.0
entrypoint:
- "/bin/sh"
- "-ecx"
- >
/nakama/nakama migrate up --database.address root@cockroachdb:26257 &&
exec /nakama/nakama --name nakama1 --database.address root@cockroachdb:26257 --logger.level DEBUG --session.token_expiry_sec 7200 --metrics.prometheus_port 9100
restart: "no"
links:
- "cockroachdb:db"
depends_on:
- cockroachdb
- prometheus
volumes:
- ./:/nakama/data
expose:
- "7349"
- "7350"
- "7351"
- "9100"
ports:
- "7349:7349"
- "7350:7350"
- "7351:7351"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7350/"]
interval: 10s
timeout: 5s
retries: 5
prometheus:
image: prom/prometheus
entrypoint: /bin/sh -c
command: |
'sh -s <<EOF
cat > ./prometheus.yml <<EON
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
- job_name: nakama
metrics_path: /
static_configs:
- targets: ['nakama:9100']
EON
prometheus --config.file=./prometheus.yml
EOF'
ports:
- '9090:9090'
volumes:
data:
(※最新の設定ファイルは「https://heroiclabs.com/docs/nakama/getting-started/install/docker/」から確認するようお願いします)
そうしたら、docker-compose.yml を作成したフォルダに移動してコマンドプロンプトを開き、
> docker compose up
を実行すると、Nakama Server のインストールが開始します。
また、インストール中にアクセス許可を求められる場合は「アクセス許可」をクリックします。

Dockerに「nakama」が表示されて「Running」となっていればインストール完了です。

実際に動いているかどうかは Nakama console で確認できます

Usernameは「admin」
Passwordは「password」で入れます
Godot で Nakama Server にアクセスする
こちらのページ
によると、Nakama Server 用の Godotクライアント(ライブラリ)が用意されているのですが、どうもうまくアクセスできませんでした…

方法がわかりましたら、今後更新していく予定です
Godotからの Nakama Server への接続は、この動画が詳しいので、参考になりそうです。