mysqldの --general-log-file
オプションを /dev/stdout
に設定してコンテナを起動しておく。
$ sudo docker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD="mypass" mysql /entrypoint.sh mysqld --datadir=/var/lib/mysql --user=root --general-log=true --general-log-file=/dev/stdout
こうすることで、docker logs -f mysql
で標準出力にてクエリーログを確認できるようになる。
ホストとコンテナでログファイルをVOLUMEで共有しなくていいのがこの方法のいいところ。また、ログファイルを確認するためにコンテナに入る必要もない。Dockerfileやmy.confを書き換えないので、プロダクション用のイメージをそのまま開発環境用に使うこともできる。この起動方法はコマンドが長くなるので、スクリプトはMakefileにしておくといい。
バージョン情報
- docker: 1.1.1