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.