PR
その他PC

Macを別PCからリモートで使う方法 – DockerでApache Guacamole(Raspberry Pi)編

アイキャッチ Guacamole(Raspberry Pi) その他PC
記事内に広告が含まれています。
スポンサーリンク

はじめに

我が家には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公式サイトのインストールスクリプトを使いました。

Docker-Composeをインストール
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

ユーザー権限でつかえるようにする

ユーザー権限で使えるようにする
$ sudo gpasswd -a $USER docker
$ newgrp docker

QEMU をインストール
ARM64 対応の Dockerイメージが見つけられず、AMD64版の公式イメージをQEMUエミュレーションで動かす場合に必要となります。

QEMUをインストール
$ sudo apt-get update
$ sudo apt-get install qemu-user-static
スポンサーリンク

Apache Guacamoleをたちあげる

作業ディレクトリを作る

作業ディレクトリ
$ mkdir ~/Guacamole
$ cd ~/Gracamole

DB初期化スクリプトを作成する

DB初期化スクリプトを作成
$ docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

docker-compose.yamlを作成

docker-compose.yamlを作成
$ nano docker-compose.yaml
docker-compose.yamlの内容
services:
  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
      - guacd
ポイント

guacdは公式イメージですが、AMD64版をエミュレータで、
guacamoleは、非公式イメージですが、ARM64版を動かしています。

2026/2/1追記
image: guacamole/guacd:latest を、
image: rpavlyuk/guacd:latest
とすると、非公式イメージですが、ARM64版のため、処理速度があがります

起動

次のコマンドで起動します。

起動
$ docker compose up -d
スポンサーリンク

ホスト側Mac側の設定

先にMac側の設定をしておきます。(今回はMacBookAIrM3を使用)

  1. システム設定 」で
    一般共有 → 画面共有 を ON
Mac画面共有
Mac画面共有
  1. 画面共有 の設定で
    • VNC 使用者が画面を操作することをパスワードで許可 を ON
    • パスワードを設定
Mac画面共有の設定
Mac画面共有の設定
スポンサーリンク

Apache Guacamoleアクセス・設定

初回アクセス

クライアントPC(今回はLet'sNote CF-FV1)で、Webブラウザーを起動し、
http://<サーバーIP>:8080/guacamole
でアクセスします。

初期ログインは、
• ユーザー: guacadmin
• パスワード: guacadmin

です。

ApacheGuacamoleログイン

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

ApacheGuacamoleパスワード変更画面
ApacheGuacamoleパスワード変更画面

設定

Guacamole の GUI で以下を設定します。

接続の編集

  • 名前:MacbookAir・・・任意の名前でOK
  • ロケーション:ROOT
  • プロトコル:VNC

同時接続制限

  • 最大接続数:1
  • ユーザー毎の最大接続数:1

Guacamole設定
接続の編集/同時接続制限
Guacamole設定 接続の編集/同時接続制限

ロードバランシング

  • すべて空欄

GUACAMOLEプロキシパラメータ

  • ホスト名:guacd
  • ポート:4822
  • 暗号化:なし

パラメータ

ネットワーク

  • ホスト名:<Macの IP>
  • ポート:5900

認証

  • ユーザー名:<空欄>
  • パスワード:Macで設定したもの

Guacamole設定 ロードバランシング/Guacamoleプロキシパラメー(guacd)/パラメータ
Guacamole設定 ロードバランシング/Guacamoleプロキシパラメー(guacd)/パラメータ

パラメータ(続き)

ディスプレイ

  • カーソル:ローカル
  • カラー進度:Lowカラー(16ビット)
  • Force lossless compression:チェックを外す
  • Compression level:5以下へ(動作遅延をみながら調整)
  • Display quality:5以下へ(動作遅延をみながら調整)
  • PROTOCOL_VNC.FIELD_HEADER_ENCODINGS:hextile または tight または空欄

クリップボード

  • エンコード:UTF-8
  • そのほかはチェックをはずす

Guacamole設定 パラメータ(続き)
Guacamole設定 パラメータ(続き)

スポンサーリンク

接続

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

ブラウザで、Mac画面共有
ブラウザで、Mac画面共有
スポンサーリンク

おわりに

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

コメント

タイトルとURLをコピーしました