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
Ubuntu / Debian
バージョン確認
4. ComposeファイルをPodman向けに調整
/opt/kcm/docker-compose.ymlを再度開き、以下の編集を行います。
セキュリティプロファイル (guacdサービスの下)
SELinuxホスト (RHEL/Fedora)
以下のように各ボリューム定義に :Z を追加します。
(任意) :latestタグを:2に置き換えることを推奨します (例: keeper/guacamole:2)。
5. Keeperコネクションマネージャーの起動
(DBの初期化に時間がかかる場合は--time 30を追加)
起動確認
ブラウザでhttp://<server-IP>:8080にアクセスし、ログイン画面が表示されることを確認します。
6. ファイアウォールの開放 (RHEL/Fedora)
(UbuntuやDebianではufwやnftablesを使用して同様の設定を行います。)
7. 自動起動の設定
これで、サーバーの再起動後も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コネクションマネージャーが動作するようになりました。軽量でデーモンレスな構成をお楽しみください。
最終更新

