Si të instaloni Apache Guacamole si Docker Container në Ubuntu


Apache Guacamole është një aplikacion i lirë, me burim të hapur, pa klient për desktopin në distancë, që ju lejon të përdorni kompjuterët e largët të Desktopit dhe Serverit nëpërmjet një shfletuesi uebi. Ai mbështet protokollet standarde si VNC, RDP dhe SSH, dhe përdor HTML5 për lidhje në distancë. Mund të funksionojë në shumicën e shpërndarjeve Linux dhe klienti funksionon në çdo shfletues modern të internetit. Ju nuk keni nevojë të instaloni ndonjë softuer në sistemin tuaj. Thjesht shfletoni dhe lidheni me çdo server të largët të përcaktuar në serverin tuaj.

Në këtë postim, ne do t'ju tregojmë se si të instaloni serverin dhe klientin Apache Guacamole me Docker në Ubuntu 22.04.

Parakushtet

  • Një server që ekzekuton Ubuntu 22.04.
  • Një fjalëkalim rrënjësor është konfiguruar në server.

Instaloni Docker Engine

Rekomandohet gjithmonë të instaloni versionin më të fundit të Docker në serverin tuaj.

Së pari, instaloni varësitë e kërkuara duke përdorur komandën e mëposhtme:

apt install ca-certificates curl gnupg lsb-release -y

Pas instalimit të të gjitha varësive, shtoni çelësin dhe depon e Docker GPG me komandën e mëposhtme:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor > /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list

Tjetra, përditësoni depon dhe instaloni paketën Docker Engine me komandën e mëposhtme:

apt update -y
apt install docker-ce docker-ce-cli containerd.io -y

Pasi të përfundojë instalimi, verifikoni versionin Docker duke përdorur komandën e mëposhtme:

docker --version

Ju duhet të merrni daljen e mëposhtme:

Docker version 20.10.18, build b40c2f6

Instaloni Docker Compose

Ju gjithashtu do të duhet të instaloni Docker Compose në serverin tuaj. Mund ta instaloni me komandën e mëposhtme:

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

Më pas, verifikoni versionin Docker Compose duke përdorur komandën e mëposhtme:

docker-compose --version

Do të merrni daljen e mëposhtme:

docker-compose version 1.29.2, build 5becea4c

Shkarkoni serverin dhe klientin Apache Guacamole

Së pari, do t'ju duhet të shkarkoni imazhin e serverit dhe klientit Apache Guacamole nga regjistri Docker.

Së pari, shkarkoni imazhin e serverit me komandën e mëposhtme:

docker pull guacamole/guacd

Ju duhet të shihni daljen e mëposhtme:

Using default tag: latest
latest: Pulling from guacamole/guacd
4b7b4a8876e2: Pull complete 
4e542e9cf89d: Pull complete 
9741340fbbb2: Pull complete 
96fa725029d6: Pull complete 
0f0a6df13f2a: Pull complete 
a4fa6e99a790: Pull complete 
07365dfaa371: Pull complete 
Digest: sha256:efdc09beba21e2c5d7c8c77e8c6b95ffd173d75645c9c41b6024f5b835d2a034
Status: Downloaded newer image for guacamole/guacd:latest
docker.io/guacamole/guacd:latest

Së pari, shkarkoni imazhin e klientit me komandën e mëposhtme:

docker pull guacamole/guacamole

Ju duhet të shihni daljen e mëposhtme:

Using default tag: latest
latest: Pulling from guacamole/guacamole
2b55860d4c66: Pull complete 
2ca45fc4c4ca: Pull complete 
0cd32add6672: Pull complete 
ac52cbbb8ca2: Pull complete 
7f7dc3a9f4cc: Pull complete 
5d7996a24402: Pull complete 
4819d3e4118d: Pull complete 
055afbac1f72: Pull complete 
23ee772344b7: Pull complete 
e44569de6126: Pull complete 
f7d7e8014b18: Pull complete 
Digest: sha256:8a8db8cf9f5359aa20547382213a42a720ea1c5fe86460ded727061e1995d9f2
Status: Downloaded newer image for guacamole/guacamole:latest
docker.io/guacamole/guacamole:latest

Më pas, verifikoni imazhet e shkarkuara me komandën e mëposhtme:

docker images

Do të merrni daljen e mëposhtme:

REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
guacamole/guacd       latest    4086ac9e35a7   9 hours ago    271MB
guacamole/guacamole   latest    959856a45436   10 hours ago   432MB

Nisni Apache Guacamole MySQL Container

Së pari, do t'ju duhet të paktën një kontejner i bazës së të dhënave për vërtetimin e Apache Guacamole. Ju mund të shkarkoni dhe lëshoni kontejnerin MySQL me komandën e mëposhtme:

docker run --name guacamoledb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=guacdb -d mysql/mysql-server

Do të merrni daljen e mëposhtme:

latest: Pulling from mysql/mysql-server
cdd8b07c6082: Pull complete 
c2f1720beca1: Pull complete 
39f143a8d6de: Pull complete 
118a8285b641: Pull complete 
b45cbcaf75c7: Pull complete 
d4574372e600: Pull complete 
1f565a3cbc52: Pull complete 
Digest: sha256:e30a0320f2e3c7b7ee18ab903986ada6eb1ce8e5ef29941b36ec331fae5f10b2
Status: Downloaded newer image for mysql/mysql-server:latest
c7a9309eac20a7d0bb6f0a16460bf2b678aae741c201efae8974ea64a3736595

Më pas, krijoni një direktori për të ruajtur bazën e të dhënave:

mkdir -p /opt/guacamole/mysql

Më pas, gjeneroni skriptin e inicializimit MySQL duke përdorur komandën e mëposhtme:

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > /opt/guacamole/mysql/01-initdb.sql

Më pas, kopjoni skriptin e inicializimit të bazës së të dhënave Guacamole MySQL në kontejnerin MySQL Docker:

docker cp /opt/guacamole/mysql/01-initdb.sql guacamoledb:/docker-entrypoint-initdb.d

Tjetra, lidheni me kontejnerin e bazës së të dhënave MySQL me komandën e mëposhtme:

docker exec -it guacamoledb bash

Pasi të jeni lidhur, do të merrni guaskën e mëposhtme:

bash-4.4# 

Më pas, renditni skriptin e inicializimit MySQL me komandën e mëposhtme:

cd /docker-entrypoint-initdb.d/
ls

Prodhimi:

01-initdb.sql

Tjetra, lidheni me guaskën MySQL duke përdorur komandën e mëposhtme:

mysql -u root -p

Më pas, kaloni bazën e të dhënave në guacd dhe inicializoni bazën e të dhënave Guacamole:

use guacdb;
source 01-initdb.sql;

Më pas, verifikoni të gjitha tabelat me komandën e mëposhtme:

show tables;

Do të merrni daljen e mëposhtme:

+---------------------------------------+
| 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             |
+---------------------------------------+

Tjetra, krijoni një përdorues administratori dhe vendosni një fjalëkalim me komandën e mëposhtme:

create user '%';

Më pas, lani privilegjet dhe dilni nga guaska MySQL me komandën e mëposhtme:

flush privileges;
exit;

Tjetra, dilni nga kontejneri MySQL duke përdorur komandën e mëposhtme:

exit

Tani mund të verifikoni kontejnerin që funksionon duke përdorur komandën e mëposhtme:

docker ps

Ju duhet të shihni kontejnerin MySQL në daljen e mëposhtme:

CONTAINER ID   IMAGE                COMMAND                  CREATED         STATUS                   PORTS                       NAMES
c7a9309eac20   mysql/mysql-server   "/entrypoint.sh mysq…"   2 minutes ago   Up 2 minutes (healthy)   3306/tcp, 33060-33061/tcp   guacamoledb

Ju gjithashtu mund të kontrolloni regjistrat e kontejnerëve me komandën e mëposhtme:

docker logs guacamoledb

Do të merrni daljen e mëposhtme:

[Entrypoint] Starting MySQL 8.0.30-1.2.9-server
2022-10-02T11:31:52.589985Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
2022-10-02T11:31:52.592352Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.30) starting as process 1
2022-10-02T11:31:52.602604Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-10-02T11:31:52.875859Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-10-02T11:31:53.131572Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2022-10-02T11:31:53.131639Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2022-10-02T11:31:53.163561Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
2022-10-02T11:31:53.163648Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.30'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server - GPL.

Hapni kontejnerin e serverit Guacamole

Tani, ekzekutoni komandën e mëposhtme për të nisur kontejnerin e serverit Guacamole:

docker run --name guacamole-server -d guacamole/guacd

Ju mund të kontrolloni regjistrat e kontejnerëve duke përdorur komandën e mëposhtme:

docker logs --tail 10 guacamole-server

Do të merrni daljen e mëposhtme:

guacd[7]: INFO:	Guacamole proxy daemon (guacd) version 1.4.0 started
guacd[7]: INFO:	Listening on host 0.0.0.0, port 4822

Për të kontrolluar kontejnerin që funksionon, përdorni komandën e mëposhtme:

docker ps

Do të merrni daljen e mëposhtme:

CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS                             PORTS                       NAMES
51b2efdab0db   guacamole/guacd      "/bin/sh -c '/usr/lo…"   26 seconds ago   Up 25 seconds (health: starting)   4822/tcp                    guacamole-server
c7a9309eac20   mysql/mysql-server   "/entrypoint.sh mysq…"   3 minutes ago    Up 3 minutes (healthy)             3306/tcp, 33060-33061/tcp   guacamoledb

Nisni kontejnerin e klientit Guacamole

Ju gjithashtu mund të nisni kontejnerin e klientit Guacamole me komandën e mëposhtme:

docker run --name guacamole-client --link guacamole-server:guacd --link guacamoledb:mysql -e MYSQL_DATABASE=guacdb -e MYSQL_USER=guacadmin -e MYSQL_PASSWORD=password -d -p 80:8080 guacamole/guacamole

Tjetra, verifikoni kontejnerin që funksionon me komandën e mëposhtme:

docker ps

Ju duhet të shihni daljen e mëposhtme:

CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS                                 PORTS                                   NAMES
d4034a72bb69   guacamole/guacamole   "/opt/guacamole/bin/…"   58 seconds ago       Up 57 seconds                          0.0.0.0:80->8080/tcp, :::80->8080/tcp   guacamole-client
51b2efdab0db   guacamole/guacd       "/bin/sh -c '/usr/lo…"   About a minute ago   Up About a minute (health: starting)   4822/tcp                                guacamole-server
c7a9309eac20   mysql/mysql-server    "/entrypoint.sh mysq…"   5 minutes ago        Up 5 minutes (healthy)                 3306/tcp, 33060-33061/tcp               guacamoledb

Në këtë pikë, kontejneri Guacamole niset dhe dëgjon në portin 80. Mund ta kontrolloni me komandën e mëposhtme:

ss -altnp | grep :80

Do të merrni daljen e mëposhtme:

LISTEN 0      4096         0.0.0.0:80        0.0.0.0:*    users:(("docker-proxy",pid=4006,fd=4))   
LISTEN 0      4096            [::]:80           [::]:*    users:(("docker-proxy",pid=4013,fd=4))   

Hyni në panelin e kontrollit të Apache Guacamole

Tani mund të hyni në ndërfaqen e internetit Apache Guacamole duke përdorur URL-në http://your-server-ip/guacamole. Ju duhet të shihni ekranin e identifikimit të Guacamole:

Jepni kredencialet e paracaktuara:

Përdoruesi: guacadmin

Fjalëkalimi: guacadmin

Më pas, klikoni në butonin Identifikohu. Ju duhet të shihni pultin e Guacamole në ekranin e mëposhtëm:

konkluzioni

urime! ju keni instaluar me sukses serverin dhe klientin Apache Guacamole duke përdorur Docker në serverin Ubuntu 22.04. Tani mund të krijoni një lidhje të re dhe të përdorni serverin në distancë nëpërmjet një shfletuesi uebi. Mos ngurroni të më pyesni nëse keni ndonjë pyetje.