更改 '/var/lib/mysql/' 的所有权:权限被拒绝。

9

环境:Windows 10 的 Docker
版本:Docker 版本 17.09.0-ce,构建版本为 afdb6d4
Docker 镜像:mysql/mysql-server:latest
Docker 已设置共享驱动器 C:


我想要运行一个 MySQL 容器,所以我使用以下命令:

C:\WINDOWS\system32>docker run -d -p 3306:3306 -v "C:/Program Files/MySQL/Config":/etc/mysql/ -v "C:/Program Files/MySQL/Data/":/var/lib/mysql/ --name mysqlserver mysql/mysql-server
c2b45a6668746f0aa708b17f05a720ee6b4cff477eeaef714685293d1b60f44b

C:\WINDOWS\system32>docker ps -a
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                     PORTS               NAMES
c2b45a666874        mysql/mysql-server   "/entrypoint.sh my..."   9 seconds ago       Exited (1) 7 seconds ago                       mysqlserver
2de1dbd9880b        redis                "docker-entrypoint..."   4 days ago          Exited (0) 4 days ago                          myredis
35c805969295        redis                "docker-entrypoint..."   9 days ago          Exited (0) 9 days ago                          redisServer

C:\WINDOWS\system32>docker logs mysqlserver
[Entrypoint] MySQL Docker Image 5.7.21-1.1.3
[Entrypoint] No password option specified for new database.
[Entrypoint]   A random onetime password will be generated.
chown: changing ownership of '/var/lib/mysql/': Permission denied

C:\WINDOWS\system32>

这是屏幕截图

我很累,我该怎么办?

2个回答

5
尝试在指定卷挂载时使用rw标签。在您的情况下,应该是这样的:
docker run -d -p 3306:3306 -v "C:/ProgramFiles/MySQL/Config":/etc/mysql/:rw -v "C:/ProgramFiles/MySQL/Data/":/var/lib/mysql/:rw --name mysqlserver mysql/mysql-server

谢谢你的帮助,当我设置目录“C:/ProgramFiles/MySQL/Data/”写入权限时,一切正常!非常感谢你! - shinercan

3

看起来主机上挂载在容器中的卷上的文件 C:/Program Files/MySQL/Data//var/lib/mysql/ 上没有设置写入权限。

您可以在挂载 /var/lib/mysql/ 时设置写入权限 (rw),具体步骤如下:

-v "C:/Program Files/MySQL/Data/":/var/lib/mysql/:rw

替代

-v "C:/Program Files/MySQL/Data/":/var/lib/mysql/

如果您认为有用的话,请给我的答案点个赞!@shinercan 乐于帮助。 - Vikram Hosakote

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接