如何在Docker Compose部署Trino时设置密码?
给Trino官方Docker镜像设置密码的方法
当然可以给Trino官方Docker镜像设置密码,默认无密码的admin用户只是基础配置,通过挂载自定义认证配置文件就能启用密码认证,具体步骤如下:
1. 生成密码文件
用htpasswd工具生成存储密码的文件(无该工具可通过apt install apache2-utils或brew install httpd安装):
htpasswd -c password.db admin
执行后按提示输入admin用户的密码,命令会生成名为password.db的密码存储文件。
2. 创建认证配置文件
在本地目录创建password-authenticator.properties文件,内容如下:
password-authenticator.name=file file.password-file=/etc/trino/password.db
该配置指定使用文件型密码认证器,并指向容器内的密码文件路径。
3. 创建访问控制配置
为确保认证后用户能正常访问Trino资源,需配置访问控制规则:
- 创建
access-control.properties文件:
access-control.name=file file.access-control-config=/etc/trino/access-control.json
- 创建
access-control.json文件,配置admin用户的全量访问权限:
{ "catalogs": [ { "user": "admin", "catalog": "*", "allow": "all" } ], "schemas": [ { "user": "admin", "catalog": "*", "schema": "*", "allow": "all" } ] }
4. 挂载配置启动容器
运行Docker容器时,将本地创建的4个文件挂载到容器内的/etc/trino/目录:
docker run -d \ -p 8080:8080 \ -v $(pwd)/password-authenticator.properties:/etc/trino/password-authenticator.properties \ -v $(pwd)/password.db:/etc/trino/password.db \ -v $(pwd)/access-control.properties:/etc/trino/access-control.properties \ -v $(pwd)/access-control.json:/etc/trino/access-control.json \ trinodb/trino
5. 验证密码认证
容器启动后,使用Trino CLI连接时需要输入密码:
trino --server localhost:8080 --user admin --password
输入之前设置的密码即可正常登录。
注意:确保挂载的文件权限正确,容器内的
trino用户需拥有读取这些文件的权限,若出现权限问题,可通过chmod 644 *.properties *.db *.json调整本地文件权限。
内容的提问来源于stack exchange,提问作者Cherry
相关产品推荐
相关产品推荐

