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ではufwnftablesを使用して同様の設定を行います。)


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ラベルが不足している。

:Zdocker-compose.ymlの各ボリューム行に追加してからpodman-compose down && podman-compose up -dを実行

再起動後にサービスが停止死ぬ

Podman Composeがrestartを無視している。

手順7でsystemdユニットを作成する

DBが再起動を繰り返す

パスワード不一致またはボリューム消失。

POSTGRES_PASSWORDやその他のデータベース環境変数が、dbサービスとguacamoleサービスの両方で一致しているか確認

迷ったときはpodman logs <コンテナ名>を実行して、最後の数行を確認してみてください。多くの場合、原因がわかります。


これで、Dockerを使わずにPodman上でKeeperコネクションマネージャーが動作するようになりました。軽量でデーモンレスな構成をお楽しみください。

最終更新