- Updated at 2020-07-12: Microsoft SQL Server, Presto を追加
手元の端末でちょろっとqueryの確認をしたいけど、そもそもローカルにclientすらインストールしていなかった時の不便を解決するための備忘録です。サーバ側のバージョン違いによる機能や挙動の確認は docker tag で制御する想定。
Postgresql
-
p15
,mydb
はご自由に変更を -
docker exec
をすぐに実行してしまうとdocker run
の初期化が終わっておらずエラーが出ることがあるが、深呼吸して時間をおいて実行すれば動きます
$ docker run --rm -d --name=p15 -e POSTGRES_USER=u -e POSTGRES_PASSWORD=p -e POSTGRES_DB=mydb postgres:15
$ docker exec -it p15 psql -h localhost -U u -d mydb
# inside docker
exit;
# outside docker
$ docker stop p15
MySQL
-
m8
,mydb
はご自由に変更を
docker run --rm -d --name=m8 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -e MYSQL_DATABASE=mydb mysql:8
docker exec -it m8 mysql -h localhost mydb
# inside inside docker
exit;
# outside docker
docker stop m8
SQLite
- 公式dockerイメージは見つからなかった。
- 出力をカンマ区切りにするためには
$'\t'
を,
に変更すればよい
docker run -it --rm nouchka/sqlite3 sqlite3 -header -separator $'\t'
sqlite> .q
Microsoft SQL-Server
- 公式手順 通り
# local
docker run --rm -d -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \
-p 1433:1433 --name sql1 \
mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04
docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
-S localhost -U SA -P "<YourStrong@Passw0rd>"
# SQLコマンド後に結果の表示に `go` とタイプする必要がある。
# inside docker
1> exit
# local
docker stop sql1
Presto
- GitHub README 手順を踏襲
docker run --rm -d -p 8080:8080 --name presto prestosql/presto
docker exec -it presto presto
# inside docker
presto> exit
# local
docekr stop presto
Trino
- Github Page 手順を踏襲
docker run --rm -p 8080:8080 --name trino trinodb/trino
docker exec -it trino trino
# inside docker
trino> show catalogs;
trino> use tpch.sf100;
trino> show tables;
trino> show columns from customer;
trino> exit