王锐
王锐
发布于 2025-02-21 / 16 阅读
0
1

如何通过docker-compose方式安装使用apache guacamole

一、准备docker-compose.yaml文件

首先通过复制粘贴以下内容,并命名为docker-compose.yml

services:
  guacdb:
    container_name: guacamoledb
    image: mysql:5.7
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'root'
      MYSQL_DATABASE: 'guacamole_db'
      MYSQL_USER: 'guacamole_user'
      MYSQL_PASSWORD: 'root'
    volumes:
      - './db-data:/var/lib/mysql'

  guacd:
    container_name: guacd
    image: guacamole/guacd:1.5.5
    restart: unless-stopped

  guacamole:
    container_name: guacamole
    image: guacamole/guacamole:1.5.5
    restart: unless-stopped
    ports:
      - 1819:8080
    environment:
      GUACD_HOSTNAME: "guacd"
      MYSQL_HOSTNAME: "guacdb"
      MYSQL_DATABASE: "guacamole_db"
      MYSQL_USER: "guacamole_user"
      MYSQL_PASSWORD: "root"
      TOTP_ENABLED: "true"
      WEBAPP_CONTEXT: "ROOT"
    depends_on:
      - guacdb
      - guacd

volumes:
  db-data:

二、为启动容器准备数据

进入此docker-compose.yaml的同级目录,并执行以下命令以生成初始化数据库文件

docker run --rm guacamole/guacamole:1.5.5 /opt/guacamole/bin/initdb.sh --mysql > ~/initdb.sql

将sql数据导入到mysql中,并执行以下命令,执行前将 <your mysql password> 更改为你配置的mysql容器密码

docker-compose up guacdb
docker cp init/initdb.sql guacamoledb:/initdb.sql
sudo docker exec -it guacamoledb bash
cat /initdb.sql | mysql -u root -p guacamole_db
<your mysql password>
exit

导入成功后,执行 docker-compose up -d 以启动容器开启服务;

三、配置nginx代理

配置nginx代理,以使用https访问,我将端口转发到了1813,因此 nginx的基本配置如下:

server{
    server_name www.hopo.dev;

    location / {
        proxy_pass http://10.43.0.11:1819; # here need to change
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        client_max_body_size 1g;
        access_log off;
  }
}


评论