このガイドでは、RockyLinuxにDockerコンテナとしてGuacamoleをインストールする方法を学習します。 Guacamoleは、クライアントレスHTML5 Webベースのリモートデスクトップゲートウェイであり、Webブラウザを介してサーバーとデスクトップへのリモートアクセスを提供します。 VNC、RDP、SSHなどの標準プロトコルをサポートしています。
RockyLinuxにDockerコンテナとしてGuacamoleをインストールする
ワカモレは2つの部分で構成されています。
guacamole-server
、これは、guacdプロキシと、Guacamoleがリモートデスクトップに接続するために必要なすべてのネイティブサーバー側コンポーネントを提供します。guacamole-client
これは、通常はサーブレットコンテナによって提供されるクライアントを提供しますTomcat
。
Guacamole Webベースのリモートデスクトップクライアントをセットアップするには、これらのコンポーネントの両方をインストールする必要があります。
GuacamoleをDockerコンテナーとして実行したくない場合は、このガイドを確認してください。
RockyLinuxにDockerコンテナとしてGuacamoleをインストールする
RockyLinuxでGuacamoleをDockerコンテナとして実行できるようにするため。
- 以下のコマンドを実行して、RockyLinuxにDockerCEをインストールします。
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io
- Dockerサービスを開始して有効にします。
systemctl enable --now docker
- RockyLinuxにDockerComposeをインストールします。
以下のコマンドを実行して、DockercomposeをRockyLinuxにインストールします。
curl -sL "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
- ワカモレコンテナ画像をダウンロード
以下のコマンドを実行して、Guacamoleサーバーおよびクライアントイメージをダウンロードします。
docker pull guacamole/guacd
docker pull guacamole/guacamole
利用可能な画像の一覧表示。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
guacamole/guacd latest 70fd332fa74e 17 hours ago 271MB
guacamole/guacamole latest 599b74ba38c9 18 hours ago 439MB
ワカモレ認証を構成する
Guacamole Dockerコンテナが機能するには、MySQLデータベース、PostgreSQLデータベース、LDAPディレクトリ、RADIUSサーバーなどの認証メカニズムが少なくとも1つ必要です。
このガイドでは、MySQLデータベース認証を使用します。
その結果、MySQLデータベースコンテナをデプロイしましょう。 最新のMySQL8Dockerイメージを使用しています。
- 以下のコマンドは、最新のMySQL 8 Dockerイメージをダウンロードし、MySQL8Dockerコンテナを作成します。
guacamole_db
、ワカモレデータベース(guacdb
)、MySQLrootユーザーパスワード;
docker run --name guacamole_db -e [email protected] -e MYSQL_DATABASE=guacdb -d mysql/mysql-server
- 次に、GuacamoleMySQLデータベース初期化スキーマを生成する必要があります。
スキーマを格納するディレクトリを作成しましょう。
mkdir -p /opt/guacamole/mysql
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > /opt/guacamole/mysql/01-initdb.sql
- GuacamoleMySQLデータベース初期化スクリプトをMySQLDockerコンテナにコピーします。
docker cp /opt/guacamole/mysql/01-initdb.sql guacamole_db:/docker-entrypoint-initdb.d
スクリプトはにコピーされます /docker-entrypoint-initdb.d
MySQLDockerコンテナのディレクトリ。
- MySQLデータベースコンテナに接続します。
docker exec -it guacamole_db bash
これにより、MySQLコンテナのルートディレクトリに移動します。
bash-4.4#
初期化スクリプトが使用可能であることを確認してください。
ls /docker-entrypoint-initdb.d/
- GuacamoleMySQLデータベースを初期化します。
cd /docker-entrypoint-initdb.d/
mysql -u root -p
で指定されたパスワードを使用してください MYSQL_ROOT_PASSWORD
その上。 ここで、MySQLプロンプトにドロップする必要があります。
bash-4.4# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 24 Server version: 8.0.29 MySQL Community Server - GPL Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
Guacamoleデータベースを初期化します。
use guacdb;
source 01-initdb.sql;
初期化が完了したら、使用可能なテーブルを確認します。
show tables;
サンプル出力;
+---------------------------------------+ | Tables_in_guacdb | +---------------------------------------+ | guacamole_connection | | guacamole_connection_attribute | | guacamole_connection_group | | guacamole_connection_group_attribute | | guacamole_connection_group_permission | | guacamole_connection_history | | guacamole_connection_parameter | | guacamole_connection_permission | | guacamole_entity | | guacamole_sharing_profile | | guacamole_sharing_profile_attribute | | guacamole_sharing_profile_parameter | | guacamole_sharing_profile_permission | | guacamole_system_permission | | guacamole_user | | guacamole_user_attribute | | guacamole_user_group | | guacamole_user_group_attribute | | guacamole_user_group_member | | guacamole_user_group_permission | | guacamole_user_history | | guacamole_user_password_history | | guacamole_user_permission | +---------------------------------------+ 23 rows in set (0.01 sec)
次に、Guacamoleデータベースユーザーを作成し、データベースに必要な権限を付与します。
create user [email protected]'%' identified by 'ChangeME';
grant SELECT,UPDATE,INSERT,DELETE on guacdb.* to [email protected]'%';
flush privileges;
quit
MySQLコンテナを終了します。
exit
実行中のコンテナを確認する場合。
docker ps
サンプル出力;
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8fe00bea2c59 mysql/mysql-server "/entrypoint.sh mysq…" 3 minutes ago Up 3 minutes (healthy) 3306/tcp, 33060-33061/tcp guacamole_db
ご覧のとおり、ヘルスステータスは正常です(開始および実行中)。
ステータスを再度確認して、特定のフィールドを印刷できます。
docker ps --format '{{.ID}}t{{.Image}}t{{.Status}}t{{.Names}}'
コンテナのログを確認することもできます。
docker logs guacamole_db
Guacamoleサーバーコンテナを起動します
GuacamoleServerコンテナをサービスとしてバックグラウンドで起動できます。
docker run --name guacamole-server -d guacamole/guacd
docker logs --tail 10 guacamole-server
guacd[7]: INFO: Guacamole proxy daemon (guacd) version 1.4.0 started
guacd[7]: INFO: Listening on host 0.0.0.0, port 4822
繰り返しますが、しばらくしてから実行中のコンテナを一覧表示します。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 669ad905db27 guacamole/guacd "/bin/sh -c '/usr/lo…" 23 minutes ago Up 23 minutes (healthy) 4822/tcp guacamole-server b78a10e6b107 mysql/mysql-server "/entrypoint.sh mysq…" About an hour ago Up About an hour (healthy) 3306/tcp, 33060-33061/tcp guacamole_db
ご覧のとおり、Guacamoleサーバーが稼働しています。
Guacamoleクライアントコンテナを起動します
これで、Guacamoleクライアントを起動できます。
これを機能させるには、GuacamoleサーバーとGuacamoleデータベースにリンクする必要があります。
また、Guacamoleクライアントポートを公開する必要があります。 8080 ワカモレへの外部アクセスを許可するためにホスト上で。
すべてのコンテナはデフォルトのDockerネットワークを使用します。
したがって、Guacamoleクライアントを起動します。
docker run --name guacamole-client --link guacamole-server:guacd
--link guacamole_db:mysql -e MYSQL_DATABASE=guacdb
-e MYSQL_USER=guacadmin -e MYSQL_PASSWORD=ChangeME
-d -p 80:8080 guacamole/guacamole
Dockerコンテナプロセスを確認します。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 07233565559c guacamole/guacamole "/opt/guacamole/bin/…" 23 seconds ago Up 20 seconds 0.0.0.0:80->8080/tcp, :::80->8080/tcp guacamole-client 669ad905db27 guacamole/guacd "/bin/sh -c '/usr/lo…" 29 minutes ago Up 29 minutes (healthy) 4822/tcp guacamole-server b78a10e6b107 mysql/mysql-server "/entrypoint.sh mysq…" About an hour ago Up About an hour (healthy) 3306/tcp, 33060-33061/tcp guacamole_db
ご覧のとおり、Guacamoleクライアントはポート8080でリッスンしており、ホストではポート80として公開されています。
ss -altnp | grep :80
LISTEN 0 4096 0.0.0.0:80 0.0.0.0:* users:(("docker-proxy",pid=6129,fd=4)) LISTEN 0 4096 [::]:80 [::]:* users:(("docker-proxy",pid=6135,fd=4))
ブラウザからGuacamoleにアクセスする
Guacamoleがセットアップされると、アドレスを使用してWebブラウザーからGuacamoleにアクセスできます。 http://server-IP/guacamole
。
デフォルトのクレデンシャル。
- ユーザー: guacadmin
- パスワード: guacadmin
ログインに成功すると、GuacamoleWebダッシュボードが表示されます。
そして、あなたは行きます。 ご覧のとおり、接続はまだ追加されていません。 これで、Guacamoleに接続を追加できます。
設定ページでGuacamoleユーザーのパスワードをリセットすることもできます。
これで、RockyLinuxにDockerContainerとしてGuacamoleをインストールするためのガイドは終わりです。
続きを読む ワカモレユーザーガイド。
The post RockyLinuxにDockerコンテナとしてGuacamoleをインストールする appeared first on Gamingsym Japan.