Dockerでデータベースのデータを消えないようにホスト側へマウントして使おうとdocker-compose.ymlを用意
$ vim docker-compose.yml
version: '2'
services:
web:
build: containers/web
ports:
- "10080:80"
volumes:
- ./www:/var/www/html
depends_on:
- db
db:
build: containers/mysql
volumes:
- "./datastore/mysql:/var/lib/mysql"
$ docker-compose build
$ docker-compose up
マウントしていたディレクトリをホスト側で確認してみたら
$ ls -al /datastore/mysql
total 176160
drwxrwxr-x 5 newrelic newrelic 4096 5月 7 12:45 .
-rw-rw---- 1 newrelic newrelic 56 5月 6 16:49 auto.cnf
drwx------ 2 newrelic newrelic 12288 5月 6 19:32 database
-rw-rw---- 1 newrelic newrelic 79691776 5月 7 12:46 ibdata1
-rw-rw---- 1 newrelic newrelic 50331648 5月 7 12:46 ib_logfile0
-rw-rw---- 1 newrelic newrelic 50331648 5月 6 16:49 ib_logfile1
drwx------ 2 newrelic newrelic 4096 5月 6 16:49 mysql
drwx------ 2 newrelic newrelic 4096 5月 6 16:49 performance_schema
と、勝手にownerがnewrelicに!なんでだ、と思って権限を確認してみたら
ホスト側
$ cat /etc/passwd
newrelic:x:999:999:New Relic daemons:/opt/newrelic:/bin/false
コンテナの中
$ cat /etc/passwd
mysql:x:999:999::/home/mysql:/bin/sh
おそらくUIDで判断してるんだと..
データボリュームってのを使うとよさそうです
また今度試します