Yas*_*svi 9 docker boot2docker
在OS X上.
我试图通过boot2docker在docker容器中运行mysql,通过/var/lib/mysql在主机上安装卷,这样我就可以拥有持久的mysql数据.我计划将来使用仅数据容器,但是现在我正在尝试使用此选项.
我使用以下命令来运行容器:
docker run -v /Users/yash/summers/db:/var/lib/mysql -i -t 'image name'
该/Users/yash/summers/db文件夹已经存在.
我正面临着这方面的问题.使用命令行,我能够访问该目录,创建/删除新文件,但是当我运行时
service mysql start,我收到以下错误:
150528 15:43:43 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
150528 15:43:43 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
150528 15:43:43 [Note] /usr/sbin/mysqld (mysqld 5.5.43-0ubuntu0.14.04.1) starting as process 909 ...
150528 15:43:43 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
150528 15:43:43 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.150528 15:43:43 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
150528 15:43:43 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
150528 15:43:43 InnoDB: The InnoDB memory heap is disabled
150528 15:43:43 InnoDB: Mutexes and rw_locks use GCC atomic builtins
150528 15:43:43 InnoDB: Compressed tables use zlib 1.2.8
150528 15:43:43 InnoDB: Using Linux native AIO
150528 15:43:43 InnoDB: Initializing buffer pool, size = 128.0M
150528 15:43:43 InnoDB: Completed initialization of buffer pool
150528 15:43:43 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
150528 15:43:44 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Run Code Online (Sandbox Code Playgroud)
我曾试图解决这个在过去的2天后,经历了那么多的页面会这样,这个和这个.
我无法解决我的问题.我想我无法完美地做出解决方案的建议.
根据我的理解,这些页面上列出了一些解决方法,包括更改uid和guid,但我认为它们没有得到很好的解释.
任何人都可以向我解释一个详细的解决方法.
更新1:我尝试使用仅数据容器,仍然面临同样的问题.
如果我不使用任何-v或--volumes-from选项,我能够运行一切正常,所以我认为在mysql服务器中没有问题.
更新2: 用于创建仅数据容器的Dockerfile:
FROM ubuntu
RUN mkdir /var/lib/mysql
VOLUME /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
Aar*_*ron -1
我同样遇到了这个问题;我通过在数据容器内 chmod/chown'ing 解决了这个问题,例如:
FROM ubuntu
# Create data directory
RUN mkdir -p /data /var/lib/mysql
RUN chmod -R 777 /data /var/lib/mysql
RUN chown -R root:root /data /var/lib/mysql
# Create /data volume
VOLUME /data
VOLUME /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
我相信这是有效的,因为 UFS 现在可以正确记录权限,而不是依赖直接从主机挂载来执行此操作,正如您所发现的,这在 OS X 上不起作用
| 归档时间: |
|
| 查看次数: |
3404 次 |
| 最近记录: |