一、准备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;
}
}