The official trinodb/trino image bundles a JDK 25 and a single-node config.properties (coordinator=true, node-scheduler.include-coordinator=true). You add one properties file per catalog in /etc/trino/catalog/, and the file name becomes the catalog name in SQL:
connector.name=iceberg
iceberg.catalog.type=rest
iceberg.rest-catalog.uri=http://l1-iceberg-rest:8181
iceberg.rest-catalog.warehouse=s3://warehouse/
fs.native-s3.enabled=true
s3.endpoint=http://l1-minio:9000
s3.path-style-access=true
s3.region=us-east-1
s3.aws-access-key=booknest-admin
s3.aws-secret-key=booknest-secret-2026trino/run_trino.sh runs the image as l1-trino on the l1-lake network (port 31080, --memory 3g, of which the JVM takes 80%) with this directory mounted; after 30 seconds of SERVER_STARTING_UP, SHOW CATALOGS listed iceberg, shop (Optimizer and Federation) and system. Production clusters add workers with coordinator=false and TLS.