我正在使用 OSX 并在 Boot2docker VM 上运行 docker。
我一直在试图弄清楚如何将容器的数据(MySQL 官方 docker 映像)持久保存到主机,但没有取得多大成功。
我不断收到一条错误消息,指出 MySQL 服务尝试写入的 /var/lib/mysql 目录不可访问。
docker run -e MYSQL_ROOT_PASSWORD=12345 -v "$(pwd)/.docker-volumes/mysql:/var/lib/mysql" mysql:5.6
查看容器中已挂载库的权限,这是我看到的:
root@mysql:/# ls -la /var/lib/
total 44
drwxr-xr-x 16 root root 4096 Jan 27 18:35 .
drwxr-xr-x 18 root root 4096 Jan 27 18:35 ..
drwxr-xr-x 7 root root 4096 Jan 27 18:35 apt
drwxr-xr-x 14 root root 4096 Jan 27 18:35 dpkg
drwxr-xr-x 2 root root 4096 Jul 14 2013 initscripts
drwxr-xr-x 2 root root 4096 Jul 14 2013 insserv
drwxrwsr-x 2 libuuid libuuid 4096 Dec 11 2012 libuuid
drwxr-xr-x 2 root root 4096 Dec 24 13:41 misc
drwxr-xr-x 1 1000 staff 102 Feb 4 15:10 mysql
drwxr-xr-x 2 root root 4096 Jan 27 16:48 pam
drwxr-xr-x 2 root root 4096 Nov 23 2012 update-rc.d
drwxr-xr-x 2 root root 4096 Jul 14 2013 urandom
如您所见,该mysql
目录由 1000 拥有,属于组 'staff'。
我的假设是运行 MySQL 的服务进程可能设置为另一个用户 ( mysql
),因此我收到此错误。
我已经读过可以使用卷数据容器来解决这个特定问题,但是由于它们只保留数据直到最后一个容器实际使用它们的卷,这对我来说不是一个好的解决方案。
我是否以错误的方式处理这个问题?
谢谢。