首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker挂载目录权限中的MySQL在外部SSD上出现混乱。

问Docker挂载目录权限中的MySQL在外部SSD上出现混乱。
EN

Stack Overflow用户
提问于 2020-05-06 04:30:00
回答 1查看 484关注 0票数 0

我在一个码头映像中运行MySQL,并从容器中的主机挂载一个目录,以使数据库持久保存./db:/var/lib/mysql。

由于数据变得非常大,我不得不把所有的东西都转移到我的外部SSD。现在看来,挂载目录的权限被弄乱了。当我让MySQL容器初始化./db目录时,一切都很好。但是,如果我停止容器,删除外部SSD,并将其连接回并再次旋转容器,MySQL容器将继续重新启动,记录如下:

代码语言:javascript
复制
chown: changing ownership of '/var/lib/mysql/._binlog.000004': Operation not permitted

  • ,我要在我的
  • drwxrwxrwx@ 1 amir staff 131072 May 5 21:25 db上运行码头。
  • docker -v:Docker version 19.03.8, build afacb8b.
  • docker-compose -v:docker-compose version 1.25.4, build 8d51620a
  • docker-compose.yml:

版本:"3“服务: db: image: mysql卷:-/db:/var/lib/mysql重新启动:总是端口:- "3306:3306”环境: MYSQL_ROOT_PASSWORD:密码网络:- projectnetwork : projectnetwork:

任何关于我如何解决这个问题的提示都将不胜感激:)谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-06 17:12:17

好吧,我不确定这是否是最好的解决办法,但我现在可以解决这个问题。如果这完全是愚蠢的,有更好的解决办法,请告诉我。

我尝试使用docker本身运行容器,并传递--user "$(id -u):$(id -g)",结果成功了。

不幸的是,我们无法在docker-compose文件中执行sub命令,因此我不得不创建自己的脚本,该脚本设置一个环境变量并运行docker:

代码语言:javascript
复制
DOCKER_COMPOSE_USER=$(id -u):$(id -g) docker-compose up -d

在docker-compose.yml中

代码语言:javascript
复制
user: ${DOCKER_COMPOSE_USER}

这招成功了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61627441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档