はじめに
我が家にはWindowsのノートPCがたくさんあるため、MacBookが使いたいならば、MacMiniをWindowsPCでリモートで使えば安く済みのでは、と思い立ちやってみました。MacBookAirに比べ、半額程度ですし。
すでにMacBookAirを持っているので、著者にとってはあまり意味はないのですが、参考になればと思います。
結論からいうと、この方法では遅すぎて実用に耐えるものではありませんが、備忘録として記載します。
使用した機材
- Raspberry Pi 5 8GB
- 32GB microSDカード(Raspberry Pi OSインストール済み)
- MacBook Air M3
- Windows PC(Let'sNote CF-FV1)
Raspberry PiにDocker-Composeをインストール
すでにインストールしてある場合は不要です。
今回は、Docker公式サイトのインストールスクリプトを使いました。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.shユーザー権限でつかえるようにする
$ sudo gpasswd -a $USER docker
$ newgrp dockerQEMU をインストール
ARM64 対応の Dockerイメージが見つけられず、AMD64版の公式イメージをQEMUエミュレーションで動かす場合に必要となります。
$ sudo apt-get update
$ sudo apt-get install qemu-user-staticApache Guacamoleをたちあげる
作業ディレクトリを作る
$ mkdir ~/Guacamole
$ cd ~/GracamoleDB初期化スクリプトを作成する
$ docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sqldocker-compose.yamlを作成
$ nano docker-compose.yamlservices:
mysql:
image: mysql:8
container_name: guac-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: guacamole_db
MYSQL_USER: guacuser
MYSQL_PASSWORD: guacpass
volumes:
- ./mysql:/var/lib/mysql
- ./initdb.sql:/docker-entrypoint-initdb.d/initdb.sql
guacd:
image: guacamole/guacd:latest
container_name: guacd
restart: unless-stopped
# platform: linux/arm64
guacamole:
image: noloknolo/guacamole-arm64:latest
container_name: guacamole
restart: unless-stopped
platform: linux/arm64
ports:
- "8080:8080"
environment:
MYSQL_HOSTNAME: mysql
MYSQL_DATABASE: guacamole_db
MYSQL_USER: guacuser
MYSQL_PASSWORD: guacpass
depends_on:
- mysql
- guacdguacdは公式イメージですが、AMD64版をエミュレータで、
guacamoleは、非公式イメージですが、ARM64版を動かしています。
2026/2/1追記
image: guacamole/guacd:latest を、
image: rpavlyuk/guacd:latest
とすると、非公式イメージですが、ARM64版のため、処理速度があがります
起動
次のコマンドで起動します。
$ docker compose up -dホスト側Mac側の設定
先にMac側の設定をしておきます。(今回はMacBookAIrM3を使用)
- 「システム設定 」で
一般 → 共有 → 画面共有 を ON

- 画面共有 の設定で
- VNC 使用者が画面を操作することをパスワードで許可 を ON
- パスワードを設定

Apache Guacamoleアクセス・設定
初回アクセス
クライアントPC(今回はLet'sNote CF-FV1)で、Webブラウザーを起動し、http://<サーバーIP>:8080/guacamole
でアクセスします。
初期ログインは、
• ユーザー: guacadmin
• パスワード: guacadmin
です。

ログイン後は、パスワードをすぐに変更しましょう。

設定
Guacamole の GUI で以下を設定します。
接続の編集
- 名前:MacbookAir・・・任意の名前でOK
- ロケーション:ROOT
- プロトコル:VNC
同時接続制限
- 最大接続数:1
- ユーザー毎の最大接続数:1

ロードバランシング
- すべて空欄
GUACAMOLEプロキシパラメータ
- ホスト名:guacd
- ポート:4822
- 暗号化:なし
パラメータ
ネットワーク
- ホスト名:<Macの IP>
- ポート:5900
認証
- ユーザー名:<空欄>
- パスワード:Macで設定したもの

パラメータ(続き)
ディスプレイ
- カーソル:ローカル
- カラー進度:Lowカラー(16ビット)
- Force lossless compression:チェックを外す
- Compression level:5以下へ(動作遅延をみながら調整)
- Display quality:5以下へ(動作遅延をみながら調整)
- PROTOCOL_VNC.FIELD_HEADER_ENCODINGS:hextile または tight または空欄
クリップボード
- エンコード:UTF-8
- そのほかはチェックをはずす

接続
Apache Guacamoleのホーム画面にもどり、設定した接続先をクリックすれば接続されます。


おわりに
カーソルの動きはスムーズなのですが、画面の更新がかなり遅くて、実用的ではありませんでした。
クライアントもMacも無線LAN接続だったり、AMD64のDockerイメージをエミュレーションで動かしているのも遅くなる原因ですが、Apache Guacamoleをもっと高性能なCPUを積むサーバーで動かせば、改善されるようなので、次はそちらも試してみようと思います。





コメント