質問: 色々検索してみたものの、同種の問題が見つけられなかったので質問いたします。 vagrantで構築したCoreOSにホストとの共有フォルダを設定し、公式のmysqlコンテナを実行させようとしているのですが、どうしても上手く構築ができません。 ホストにある `mysql` ディレクトリを `/home/core/share/` 以下にマウントした状態で次のコマンドを実行すると、 ``` $ docker -run -v /home/core/share/mysql:/var/lib/mysql mysql ``` 起動途中でパーミッションが変更できないというエラーが表示されていまいます。 ``` FATAL ERROR: Could not chown directory /var/lib/mysql/ ``` `-v` オプションの指定先を、共有フォルダ以外のパスに指定した場合は問題なく最後まで起動しました。CoreOS内でアクセス権限の変更も試してみましたが、解決しません。 ``` # やったけど解決せず $ chown core:core /home/core/share/mysql ``` * Vagrantfileは公式のものからファイル共有部分をコメントアウト(124行目)して作成しています。 * ホストはMacOSX Yosemiteにvagrantとvirtualboxをインストールしています。 もしかして、共有フォルダに直接永続化データを作成するような使い方はできないような仕組みになっているのでしょうか...?
回答: ホストがOS Xとのことで、ちょっと触ったことがないので確かなことは言えませんが、 windowsとcentOSの場合でも、パーミッションの問題はよくあるので、環境の問題かもしれませんね。 本来であればデータの永続化は可能です。だた、昔PATH(/usr/local/bin等)をマウントしようとしたときに私も失敗したような気がします。 mysqlの実データをマウント、ということ自体あまりよくないようがしますので、コンテナ作成時にポートフォワードしてはいかがですか? ホスト側でmysqlが起動しているのであればdockerからポートフォワードで接続できます。 ``` docker -run -v /home/core/share/mysql:/var/lib/mysql mysql -p 13306:3306 ``` 実際の接続はdockerに接続してから ``` mysql -u root --port=13306 database ```