不能删除docker主机上的文件

我正在使用下面的shell脚本在入口点提取我的数据库并启动容器。

#!/bin/bash if [ ! -d "/var/lib/mysql/assetmanager" ]; then tar -zxvf mysql.tar.gz fi exec /usr/bin/mysqld_safe 

在启动时,我使用-v参数将本地目录挂载到/ var / lib / mysql目录,然后使用上面的脚本解压缩文件。 但现在我无法删除我的主机上提取的文件,因为权限被拒绝错误。 有人可以帮我解决这个问题。

谢谢

您不能删除它们,因为默认情况下root用户执行的容器中的进程和提取的文件都属于root用户。 如果你不需要在映射目录中的这些文件,使用它的不同位置-v …:/ myassets和脚本:

 if [ ! -d "/var/lib/mysql/assetmanager" ]; then tar -zxvf /myassets/mysql.tar.gz fi 

如果只需要该文件,也可以映射单个文件而不是整个目录。

还有很多其他的解决scheme,取决于你需要什么:

  • 你可以删除这些文件作为根:sudo rm …
  • 你可以在退出前在容器中删除它们
  • 您可以在容器中创build用户并从该用户创build文件