Podmanによるインストール;
Keeper公式の「Docker Composeインストール」ガイドをベースに、Podman用に調整したものです
はじめに
Linuxサーバー
RHEL 9 / Alma 9 / Rocky 9 / Fedora 39またはUbuntu 24.04 / Debian 12
Podman 5以降が搭載されている最新のディストリビューションで機能
パッケージ
podmanおよびpodman-compose
手順3でインストール
ネットワーク
空きTCPポート1つ (例では8080を使用)
HTTPSを使用する場合はポート80と443も開放が必要
1. 作業用フォルダの作成とComposeファイルの保存
サーバーにログインし、以下を実行します。
sudo mkdir -p /opt/kcm && cd /opt/kcmブラウザでDocker Composeインストールのページ を開き、[Step 2 — Create Docker Compose File] にスクロールします。YAMLブロックをコピーして、/opt/kcm/docker-compose.ymlに貼り付けます。
2. セキュリティ強化されたseccompプロファイルのダウンロード
インストールスクリプトを使わない場合は、以下のように手動で取得します。
sudo mkdir -p /etc/kcm-setup
sudo podman run --rm --entrypoint=/bin/cat \
docker.io/keeper/guacd:2 \
/opt/keeper/share/guacd/docker-seccomp.json \
| sudo tee /etc/kcm-setup/guacd-docker-seccomp.jsonこのコマンドにより一時的なコンテナを起動し、含まれているJSONファイルを読み込んでホストに保存します。
3. Podmanと補助ツールのインストール
RHEL / Alma / Rocky / Fedora
sudo dnf install -y podman podman-compose firewalld haveged
sudo systemctl enable --now havegedUbuntu / Debian
sudo apt update && sudo apt install -y podman podman-compose firewalld haveged
sudo systemctl enable --now havegedバージョン確認
podman --version # バージョン5.x以上であること4. ComposeファイルをPodman向けに調整
/opt/kcm/docker-compose.ymlを再度開き、以下の編集を行います。
セキュリティプロファイル (guacdサービスの下)
security_opt:
- seccomp:/etc/kcm-setup/guacd-docker-seccomp.jsonSELinuxホスト (RHEL/Fedora)
以下のように各ボリューム定義に :Z を追加します。
- "common-storage:/var/lib/guacamole:rw,Z"(任意) :latestタグを:2に置き換えることを推奨します (例: keeper/guacamole:2)。
5. Keeperコネクションマネージャーの起動
cd /opt/kcm
sudo podman-compose up -d(DBの初期化に時間がかかる場合は--time 30を追加)
起動確認
podman ps --format "{{.Names}} {{.Status}} {{.Ports}}"ブラウザでhttp://<server-IP>:8080にアクセスし、ログイン画面が表示されることを確認します。
6. ファイアウォールの開放 (RHEL/Fedora)
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload(UbuntuやDebianではufwやnftablesを使用して同様の設定を行います。)
7. 自動起動の設定
sudo podman generate systemd --name kcm_guacamole_1 --files --new
sudo podman generate systemd --name kcm_guacd_1 --files --new
sudo podman generate systemd --name kcm_db_1 --files --new
sudo mv *.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now container-kcm_guacamole_1.service \
container-kcm_guacd_1.service \
container-kcm_db_1.serviceこれで、サーバーの再起動後もKCMが自動で起動します。
8. 初回起動後の確認
ローカルの正常性確認
curl -f http://localhost:8080/
<title>Guacamole</title> を含むHTMLを返す
コンテナの状態
podman ps
3つのコンテナすべてが「Up」表示
リモートアクセス
ブラウザで http://<server-IP>:8080
ログイン画面が表示される
トラブルシューティング
「Connection timed out」
サーバーのファイアウォールがまだポート8080をブロックしているか、Podmanをrootlessモードで実行しており、ポートが127.0.0.1にバインドされている可能性があります。
Rootfulの場合は手順6のfirewall-cmdを実行。Rootlessの場合はnginxまたはHAProxyを使ってポートを80/443に割り当てる
/guacamole で404 Not Found
UIはデフォルトで / に配置されている。
http://host:8080/にアクセスするか、guacamoleサービスでGUACAMOLE_CONTEXT_PATH=guacamoleを設定
Fedora/RHELでPermission denied
SELinuxラベルが不足している。
:Zをdocker-compose.ymlの各ボリューム行に追加してからpodman-compose down && podman-compose up -dを実行
再起動後にサービスが停止死ぬ
Podman Composeがrestartを無視している。
手順7でsystemdユニットを作成する
DBが再起動を繰り返す
パスワード不一致またはボリューム消失。
POSTGRES_PASSWORDやその他のデータベース環境変数が、dbサービスとguacamoleサービスの両方で一致しているか確認
迷ったときはpodman logs <コンテナ名>を実行して、最後の数行を確認してみてください。多くの場合、原因がわかります。
これで、Dockerを使わずにPodman上でKeeperコネクションマネージャーが動作するようになりました。軽量でデーモンレスな構成をお楽しみください。
最終更新

