Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.
docker pull jaschweder/sybase
docker run -d --name beekeeper-studio -p 2638:2638 --restart always jaschweder/sybase
podman run -d --name beekeeper-studio -p 2638:2638 --restart always jaschweder/sybase
skopeo inspect docker://docker.io/jaschweder/sybase:latest
oras pull jaschweder/sybase
docker compose up -d
version: '3'
volumes:
mssql:
mssqllatin:
mysql:
mysql8:
mysql4.1:
psql96:
psql14:
psql13:
psql15_load_test_data:
psql17:
mariadb:
cockroachdb:
oracle18:
cassandra:
scylladb:
bigquery:
firebird:
mongodb:
anywhere:
redis:
greengage:
greengage7:
starrocks:
surreal:
services:
anywhere:
image: jaschweder/sybase
platform: linux/amd64
ports:
- 2638:2638
mongodb:
image: mongo
platform: linux/amd64
environment:
MONGO_INITDB_ROOT_USERNAME: beekeeper
MONGO_INITDB_ROOT_PASSWORD: example
MONGO_INITDB_DATABASE: sakila
volumes:
- ./dev/docker_mongodb_init:/docker-entrypoint-initdb.d
ports:
- 27017:27017
oracle18:
image: gvenzl/oracle-xe:18
platform: linux/amd64
environment:
ORACLE_PASSWORD: example
ORACLE_DATABASE: sakila
APP_USER: beekeeper
APP_USER_PASSWORD: example
volumes:
- oracle18:/opt/oracle/oradata
- ./dev/docker_oracle_init:/docker-entrypoint-initdb.d
ports:
- 1521:1521
psql15-load-test:
image: postgres:15
platform: linux/amd64
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: example
POSTGRES_DB: load_test_db
volumes:
- psql15_load_test_data:/var/lib/postgresql/data
- ./dev/docker_psql_load_test_init:/docker-entrypoint-initdb.d
ports:
- 5435:5432
shm_size: 2gb
command: postgres -c shared_preload_libraries=pg_stat_statements -c max_connections=1000 -c shared_buffers=512MB -c work_mem=16MB
psql15:
image: postgres:15
platform: linux/amd64
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: example
POSTGRES_DB: saklia
volumes:
- psql13:/var/lib/postgresql/data
- ./dev/docker_psql_init:/docker-entrypoint-initdb.d
ports:
- 5434:5432
psql17:
image: postgres:17
platform: linux/amd64
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: example
POSTGRES_DB: saklia
volumes:
- psql17:/var/lib/postgresql/data
- ./dev/docker_psql_init:/docker-entrypoint-initdb.d
ports:
- 5437:5432
psql14:
image: postgres:14
platform: linux/amd64
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: example
POSTGRES_DB: saklia
volumes:
- psql14:/var/lib/postgresql/data
- ./dev/docker_psql_init:/docker-entrypoint-initdb.d
ports:
- 5436:5432
psql13:
image: postgres:13
platform: linux/amd64
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: example
POSTGRES_DB: saklia
volumes:
- psql13:/var/lib/postgresql/data
- ./dev/docker_psql_init:/docker-entrypoint-initdb.d
ports:
- 5433:5432
trino:
image: trinodb/trino:latest
platform: linux/amd64
ports:
- "8090:8080"
volumes:
- ./dev/docker_trino/catalog:/etc/trino/catalog
depends_on:
- psql
- mysql8
psql:
image: postgres:9.6
platform: linux/amd64
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: example
POSTGRES_DB: saklia
volumes:
- psql96:/var/lib/postgresql/data
- ./dev/docker_psql_init:/docker-entrypoint-initdb.d
ports:
- 5432:5432
# Greengage DB 6. https://hub.docker.com/r/greengagedb/ggdb6_ubuntu/tags . Demo listens on 6000.
greengage:
image: greengagedb/ggdb6_ubuntu:6.29.2
platform: linux/amd64
sysctls:
kernel.sem: "500 1024000 200 4096"
ports:
- 5438:6000
volumes:
- greengage:/tmp/greengage_data
- ./dev/docker_greengage/init-and-run.sh:/init-and-run.sh:ro
command: ["bash", "/init-and-run.sh"]
# Greengage DB 7. https://hub.docker.com/r/greengagedb/ggdb7_ubuntu/tags . Demo listens on 7000.
greengage7:
image: greengagedb/ggdb7_ubuntu:7.4.1
platform: linux/amd64
sysctls:
kernel.sem: "500 1024000 200 4096"
ports:
- 5439:7000
volumes:
- greengage7:/tmp/greengage_data
- ./dev/docker_greengage/init-and-run.sh:/init-and-run.sh:ro
command: ["bash", "/init-and-run.sh"]
mariadb:
image: mariadb
platform: linux/amd64
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: test
ports:
- 3307:3306
volumes:
- mariadb:/var/lib/mysql
- ./dev/docker_mysql_init:/docker-entrypoint-initdb.d
mysql8:
image: mysql:8.0.21
platform: linux/amd64
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: test
ports:
- 3308:3306
volumes:
- mysql8:/var/lib/mysql
- ./dev/docker_mysql_init:/docker-entrypoint-initdb.d
mysql:
image: mysql:5.7.22
platform: linux/amd64
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: test
ports:
- 3306:3306
volumes:
- mysql:/var/lib/mysql
- ./dev/docker_mysql_init:/docker-entrypoint-initdb.d
mysql4.1:
image: vettadock/mysql-old:4.1
platform: linux/amd64
ports:
- 3309:3306
sqlserver:
image: "mcr.microsoft.com/mssql/server:2017-latest-ubuntu"
platform: linux/amd64
volumes:
- mssql:/var/opt/mssql/data
- ./dev/docker_sqlserver:/docker_init
environment:
ACCEPT_EULA: "Y"
MSSSQL_PID: "Express"
SA_PASSWORD: "Example@1"
ports:
- 1433:1433
command: sh -c ' chmod +x /docker_init/entrypoint.sh; /docker_init/entrypoint.sh & /opt/mssql/bin/sqlservr;'
sqlserverlatin:
image: 'mcr.microsoft.com/mssql/server:2017-latest-ubuntu'
platform: linux/amd64
volumes:
- mssqllatin:/var/opt/mssql/data
- ./dev/docker_sqlserver:/docker_init
environment:
ACCEPT_EULA: "Y"
SA_PASSWORD: Example@1"
MSSQL_COLLATION: Latin1_General_CS_AS
MSSQL_PID: "Express"
ports:
- 1434:1433
command: sh -c ' chmod +x /docker_init/entrypoint.sh; /docker_init/entrypoint.sh & /opt/mssql/bin/sqlservr;'
cockroachdb:
image: cockroachdb/cockroach:v22.1.1
platform: linux/amd64
volumes:
- cockroachdb:/cockroach/cockroach-data
ports:
- 26257:26257
command: start-single-node --insecure
cassandra:
image: cassandra:latest
platform: linux/amd64
entrypoint: [ "/docker-entrypoint.initdb.d/entry.sh" ]
ports:
- 9042:9042
volumes:
- cassandra:/var/lib/cassandra
- ./dev/docker_cassandra_init:/docker-entrypoint.initdb.d
# use keyspace; describe tables; # get all the tables for a specific keyspace
# select * from system_schema.keyspaces; # gets all keyspaces
# https://www.folkstalk.com/2022/09/get-all-keyspaces-in-cassandra-with-code-examples.html
# Create keyspace https://www.tutorialspoint.com/cassandra/cassandra_create_keyspace.htm
scylladb:
image: scylladb/scylla:2025.1.4
platform: linux/amd64
entrypoint: [ "/docker-entrypoint.initdb.d/entry.sh" ]
command: --reactor-backend epoll --smp 1 --memory 1G --overprovisioned 1 --api-address 0.0.0.0
ports:
- 9043:9042 # Different host port to run alongside Cassandra
volumes:
- scylladb:/var/lib/scylla
- ./dev/docker_scylladb_init:/docker-entrypoint.initdb.d
healthcheck:
test: ["CMD-SHELL", "cqlsh -e 'DESCRIBE KEYSPACES'"]
interval: 10s
timeout: 5s
retries: 10
bigquery:
image: ghcr.io/goccy/bigquery-emulator:latest
platform: linux/amd64
volumes:
- ./dev/docker_bigquery:/data
- ./dev/docker_bigquery:/docker_init
ports:
- 9050:9050
- 9060:9060
entrypoint: sh -c 'chmod +x /docker_init/data.sh; /docker_init/data.sh'
firebird:
image: jacobalberty/firebird:v4.0.1
platform: linux/amd64
volumes:
- ./dev/docker_firebird:/docker_init
ports:
- 3050:3050
environment:
- ISC_PASSWORD=masterkey
- EnableLegacyClientAuth=true
command: sh -c 'chmod +x /docker_init/entrypoint.sh; /docker_init/entrypoint.sh & /usr/local/firebird/docker-entrypoint.sh firebird;'
libsql:
image: ghcr.io/tursodatabase/libsql-server:latest
platform: linux/amd64
ports:
- 8081:8080
- 5001:5001
# environment:
# - SQLD_NODE=primary
# volumes:
# - ./dev/docker_libsql:/var/lib/sqld
clickhouse:
image: clickhouse/clickhouse-server
platform: linux/amd64
ports:
- 8123:8123
environment:
- CLICKHOUSE_USER=username
- CLICKHOUSE_PASSWORD=password
- CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1
redis:
image: redis:latest
ports:
- 6379:6379
volumes:
- redis:/data
- ./dev/docker_redis:/docker_init
command: sh -c 'redis-server & sleep 3 && /docker_init/data.sh && wait'
clickhouse25:
image: clickhouse/clickhouse-server:25.6.1
ports:
- 8124:8123
environment:
- CLICKHOUSE_USER=username
- CLICKHOUSE_PASSWORD=password
- CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1
surrealdb:
image: surrealdb/surrealdb:latest
user: "0:0"
command: start --log trace --user root --pass root --allow-all rocksdb:/mydata/surreal.db
ports:
- 8000:8000
volumes:
- surreal:/mydata
surrealdb-seed:
image: surrealdb/surrealdb:latest
depends_on:
- surrealdb
command: import --endpoint http://surrealdb:8000 --user root --pass root --ns test --db test /seed.surql
volumes:
- ./dev/docker_surrealdb_init/seed.surql:/seed.surql:ro
dynamodb-local:
image: amazon/dynamodb-local:latest
platform: linux/amd64
ports:
- 8001:8000
command: "-jar DynamoDBLocal.jar -sharedDb -inMemory"
# StarRocks (FE + BE in one container). MySQL protocol on 9030, FE http on 8030.
# The command layers the quick start sample data loader on top of the image's
# own ./entrypoint.sh; data is loaded once and persisted in the starrocks volume.
# See https://docs.starrocks.io/docs/quick_start/shared-nothing/
starrocks:
image: starrocks/allin1-ubuntu
ports:
- 9030:9030
- 8030:8030
- 8040:8040
volumes:
- starrocks:/data/deploy/starrocks
- ./dev/docker_starrocks/init.sh:/init.sh:ro
command: ["bash", "/init.sh"]