mysql - 无法使用纯数据容器创建 docker mysql

标签 mysql persistence docker

我正在尝试创建一个 mysql 容器,它可以使用“volume-from”(仅数据容器)。我使用 dockerfile/mysql,并且仅数据卷来自 Dockerfile:

FROM busybox
VOLUME /var/lib/mysql
CMD ["true"]

我可以使用docker run -d dockerfile/mysql启动一个简单的mysql守护进程,但是当与仅数据卷连接时,(无论“-v”与无论是否本地卷),都会失败:

docker create --name box -v {local}:/var/lib/mysql {my-busybox-image}
docker run -d --name db --volume-from box dockerfile/mysql 

docker log db 消息如下

150227 09:56:10 mysqld_safe Logging to syslog.
150227 09:56:10 mysqld_safe Starting mysqld daemon with databases from     /var/lib/mysql
150227 09:56:11 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

我使用 MAC,带有 boot2docker,docker 版本是:

Client version: 1.3.0
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): c78088f
OS/Arch (client): darwin/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef

我不知道如何解决这个问题,有什么建议吗?

谢谢:)

最佳答案

可能是因为 mysql 用户没有访问该卷的权限。

但是没有必要这样做。只需使用 mysql 镜像创建卷,那么所有权限都会正确,即:

docker run --name data-container dockerfile/mysql echo "MySQL data container"
docker run -d --name db --volumes-from data-container dockerfile/mysql 

我使用了 run 而不是 create,以防入口点脚本需要运行和配置,但它会在 echo 后立即退出。因为您已经下载了 mysql 镜像,所以您的数据容器不会占用任何额外空间,因此 busybox 镜像不会为您保存任何内容。

顺便说一句,dockerfile/mysql不是官方的MySQL镜像(官方的只是mysql)。

关于mysql - 无法使用纯数据容器创建 docker mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28762651/

相关文章:

MySQL - 语法错误

mysql - DDL的自动提交

docker - 从另一个容器访问Neo4J

docker - 无法使用 docker engine-api 和长生命周期 JSON 文件从 GCR 注册表中提取

docker - 指定共享卷的数据来源

mysql - 从列中选择顶部值

mysql - 如何知道列的数据类型?

java - 无法将 SonarQube 从 4.5.2 升级到 5.0

c# - DDD 逻辑和持久性无知

c# - 将持久数据保存在内存中