我在一个码头映像中运行MySQL,并从容器中的主机挂载一个目录,以使数据库持久保存./db:/var/lib/mysql。
由于数据变得非常大,我不得不把所有的东西都转移到我的外部SSD。现在看来,挂载目录的权限被弄乱了。当我让MySQL容器初始化./db目录时,一切都很好。但是,如果我停止容器,删除外部SSD,并将其连接回并再次旋转容器,MySQL容器将继续重新启动,记录如下:
chown: changing ownership of '/var/lib/mysql/._binlog.000004': Operation not permitteddrwxrwxrwx@ 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:
任何关于我如何解决这个问题的提示都将不胜感激:)谢谢!
发布于 2020-05-06 17:12:17
好吧,我不确定这是否是最好的解决办法,但我现在可以解决这个问题。如果这完全是愚蠢的,有更好的解决办法,请告诉我。
我尝试使用docker本身运行容器,并传递--user "$(id -u):$(id -g)",结果成功了。
不幸的是,我们无法在docker-compose文件中执行sub命令,因此我不得不创建自己的脚本,该脚本设置一个环境变量并运行docker:
DOCKER_COMPOSE_USER=$(id -u):$(id -g) docker-compose up -d在docker-compose.yml中
user: ${DOCKER_COMPOSE_USER}这招成功了!
https://stackoverflow.com/questions/61627441
复制相似问题