Я установил Apache Гуакамоле, используя Docker на CentOS 8.1 с Docker 19.03.
Я выполнил шаги, описанные здесь:
Я запустил контейнеры так:
# mysql container
docker run --name guacamole-mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes -e MYSQL_ONETIME_PASSWORD=yes -d mysql/mysql-server
# guacd container
docker run --name guacamole-guacd -e GUACD_LOG_LEVEL=debug -d guacamole/guacd
# guacamole container
docker run --name guacamole-guacamole --link guacamole-guacd:guacd --link guacamole-mysql:mysql -e MYSQL_DATABASE=guacamole -e MYSQL_USER=guacamole -e MYSQL_PASSWORD=password -d -p 8080:8080 guacamole/guacamole
Все прошло нормально, и я смог получить доступ к веб-интерфейсу гуакамоле через порт 8080. Я настроил одно соединение VN C с другим компьютером через порт 5900. К сожалению, когда я пытаюсь использовать это соединение, я получаю следующее ошибка в веб-интерфейсе:
"Произошла внутренняя ошибка на сервере Гуакамоле, и соединение было разорвано ..."
Я также просматривал журналы и Журнал гуакамоле Я нашел это:
docker logs --tail all -f guacamole-guacamole
...
15:54:06.262 [http-nio-8080-exec-2] ERROR o.a.g.w.GuacamoleWebSocketTunnelEndpoint - Creation of WebSocket tunnel to guacd failed: End of stream while waiting for "args".
15:54:06.685 [http-nio-8080-exec-8] ERROR o.a.g.s.GuacamoleHTTPTunnelServlet - HTTP tunnel request failed: End of stream while waiting for "args".
Я уверен, что целевой компьютер (на котором работает сервер VN C) в порядке. Я могу подключиться к нему как с клиента VN C, так и с другого старого гуакамоле, который я установил ранее (без использования Docker).
Мои контейнеры тоже выглядят нормально:
docker container ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad62aaca5627 guacamole/guacamole "/opt/guacamole/bin/…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp guacamole-guacamole
a46bd76234ea guacamole/guacd "/bin/sh -c '/usr/lo…" About an hour ago Up About an hour 4822/tcp guacamole-guacd
ed3a590b19d3 mysql/mysql-server "/entrypoint.sh mysq…" 2 hours ago Up 2 hours (healthy) 3306/tcp, 33060/tcp guacamole-mysql
Я подключился к контейнеру с гуакамоле-гуакамоле и пропинговал два других контейнера: гуакамоле- mysql и гуакамоле-гуакд. Оба выглядят хорошо и достижимы.
docker exec -it guacamole-guacamole bash
root@ad62aaca5627:/opt/guacamole# ping guacd
PING guacd (172.17.0.2) 56(84) bytes of data.
64 bytes from guacd (172.17.0.2): icmp_seq=1 ttl=64 time=0.191 ms
64 bytes from guacd (172.17.0.2): icmp_seq=2 ttl=64 time=0.091 ms
root@ad62aaca5627:/opt/guacamole# ping mysql
PING mysql (172.17.0.3) 56(84) bytes of data.
64 bytes from mysql (172.17.0.3): icmp_seq=1 ttl=64 time=0.143 ms
64 bytes from mysql (172.17.0.3): icmp_seq=2 ttl=64 time=0.102 ms
Похоже, существует проблема связи между самим гуакамоле и гуачем. И это то, где я полностью застрял.
РЕДАКТИРОВАТЬ
Я попробовал на CentOS 7, и я получил те же проблемы.
Я также пытался это решение https://github.com/boschkundendienst/guacamole-docker-compose в соответствии с предложением @BatchenRegev, но у меня снова возникла та же проблема.