Docker for WindowsでMySQLコンテナのデータを永続化する
Docker for WindowsでMySQLコンテナのデータを永続化する際、ホストディレクトリを/var/lib/mysql
に単純にマウントすると、MySQLコンテナ側で以下のようなエラーが出ます。
2018-11-18T10:02:32.761277Z 1 [ERROR] [MY-012646] [InnoDB] File ./ibdata1: 'open' returned OS error 71. Cannot continue operation
このエラーを回避するにはDockerボリュームを使ってデータを永続化すると、うまくいくみたいです。具体的にはdocker-compose.yml
に以下のように記載して起動するとうまくいきます。
version: '3' services: mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: mydb MYSQL_USER: myuser MYSQL_PASSWORD: password volumes: - "mysql_data:/var/lib/mysql" volumes: mysql_data: driver: local