加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

mysql – 在OSX中安装Docker卷时权限被拒绝

发布时间:2020-12-16 03:53:14 所属栏目:安全 来源:网络整理
导读:我很有智慧,所以希望你们能帮助我.在带有docker-machine的OSX 10.11.2中,我有一个docker-compose文件,它应该构建一个本地Dockerfile并为它附加一个MySQL容器. MySQL容器应该挂载我存储数据库数据的本地文件夹,因此如果容器或VM关闭,我可以重新启动它而不会丢

我很有智慧,所以希望你们能帮助我.在带有docker-machine的OSX 10.11.2中,我有一个docker-compose文件,它应该构建一个本地Dockerfile并为它附加一个MySQL容器. MySQL容器应该挂载我存储数据库数据的本地文件夹,因此如果容器或VM关闭,我可以重新启动它而不会丢失数据.问题是,当我运行它时,它会抛出一个权限错误:

db_1  | 2015-12-23 19:17:59 7facaa89b740  InnoDB: Operating system error number 13 in a file operation.
db_1  | InnoDB: The error means mysqld does not have the access rights to
db_1  | InnoDB: the directory.

我已经尝试过每一个我能想到的排列方法来实现这一点.我正在阅读它,它可能与docker-machine如何处理OSX权限有关,但是docker-machine的文档说它安装了/ Users文件夹,所以这不应该是一个问题.

这是docker-compose.yml:

web:
  build: .
  ports:
    - "3000:3000"
  links:
    - db
db:
  image: mysql:5.6
  ports:
    - "3306:3306"
  volumes:
    - /Users/me/Development/mysql-data:/var/lib/mysql
  environment:
    MYSQL_ROOT_PASSWORD: mypass

有任何想法吗?我不禁想到这很简单.非常感激任何的帮助!

编辑:

>主持人 – drwxr-xr-x 7 me staff 238 Dec 23 12:10 mysql-data /
> VM – drwxr-xr-x 1码头工作人员238 Dec 23 20:10 mysql-data /

至于容器,它不会在安装卷的情况下运行.没有-v mount,它是:

>容器 – drwxr-xr-x 4 mysql mysql 4096 12月24日00:37 mysql

最佳答案
问题来自于Mac和Linux分别使用的用户标识. Mac不喜欢Linux想要将1用作userID.

我在mac docker-machine设置中解决所有权限疯狂的方法是使用这个Dockerfile

FROM mysql:5.6

RUN usermod -u 1000 mysql
RUN mkdir -p /var/run/mysqld
RUN chmod -R 777 /var/run/mysqld

而不是简单的MySQL 5.6图像.

最后两行是必要的,因为更改mysql用户的用户ID会破坏该映像的构建权限. =>您需要777权限才能在此处运行:/

我知道这有点hacky,但到目前为止我知道权限问题的最佳解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读