- Updated at 2020-07-12: Microsoft SQL Server, Presto を追加
手元の端末でちょろっとqueryの確認をしたいけど、そもそもローカルにclientすらインストールしていなかった時の不便を解決するための備忘録です。サーバ側のバージョン違いによる機能や挙動の確認は docker tag で制御する想定。
Postgresql
-
p11
,mydb
はご自由に変更を -
docker exec
をすぐに実行してしまうとdocker run
の初期化が終わっておらずエラーが出ることがあるが、深呼吸して時間をおいて実行すれば動きます
$ docker run --rm -d --name=p11 -e POSTGRES_USER=u -e POSTGRES_PASSWORD=p -e POSTGRES_DB=mydb postgres:11
$ docker exec -it p11 psql -h localhost -U u -d mydb
# inside docker
exit;
# outside docker
$ docker stop p11
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
# insice docker
presto> exit
# local
docer stop presto