Dockerでstorageにoverlayを使う際の注意事項(2016/2時点,CentOS7)

Dockerでstorage driverにoverlayを使ってはまったこと。 2016/2時点 CentOS7でのdocker(1.8.2)においては、コンテナのファイルが2GBを超えると、読み込めなくなるようだ。 mariadbにて、dumpファイルの取り込みまでは問題ないのだが、これを一旦停止し、再度立ち上げようとすると「27: File too large」というメッセージが出て起動できない。 ググってみたところ、どうもこのメッセージはMariaDBというよりもOSが出しているようだ。そのことに気づいてoverlayをdevicemapperに戻したところ、現象は発生しなくなった。 開発者サイドでも、まだoverlayは何が起こるかわからない、というスタンスらしいので、要注意。

<span title='2016-02-09 02:00:00 +0900 +0900'>February 9, 2016</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41

Dockerでのmysql利用時の注意

Dockerでmysqlを利用する際にはまったこと。 Dockerfile等で初期データを流し込みたい場合、mysqld_safeを「バックグラウンド」で起動しておいてmysqlコマンドで流しこみを行うのだが、 nohup mysqld_safe & mysql -u root < init.sql のように実行してしまうと、 mysqlサーバが起動する前にコマンドが帰ってきてしまうため2行目で「mysql.sockがない」という旨のエラーが返ってきてしまう。 このような場合、1行目の後に以下のようなループを噛ませるとうまく行くはず。(bashの場合) nohup mysqld_safe & for {1..10}; do if [ -e /var/lib/mysql/mysql.sock ]; then break fi sleep 1 done

<span title='2016-02-09 01:00:00 +0900 +0900'>February 9, 2016</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;tack41