Linux 尝试在docker容器中使用单个命令运行chmod

Linux 尝试在docker容器中使用单个命令运行chmod,linux,docker,Linux,Docker,我正在尝试使用下面使用的3个命令,或者将其转换为单个命令,或者将其转换为可以从其他程序调用的脚本 这就是我目前正在做的: $ sudo docker exec -it <my-app container id> bash $ chmod +r /var/opt/mssql/data/myFile.bak $ exit 有没有更简单的方法在docker容器中chmod文件?如果没有,我如何将其放在单个命令或单个脚本中 这不起作用: $ sudo docker exec -it <

我正在尝试使用下面使用的3个命令,或者将其转换为单个命令,或者将其转换为可以从其他程序调用的脚本

这就是我目前正在做的:

$ sudo docker exec -it <my-app container id> bash
$ chmod +r /var/opt/mssql/data/myFile.bak
$ exit
有没有更简单的方法在docker容器中chmod文件?如果没有,我如何将其放在单个命令或单个脚本中

这不起作用:

$ sudo docker exec -it <my-app container id> bash; chmod +r /var/opt/mssql/data/myFile.bak; exit

我假设您有一个正在运行的容器,并且您希望将文件chmod到其中。此更改可能会绑定到容器的生存期,除非该文件位于卷上

docker exec <my-app container id> bash -c 'chmod +r /var/opt/mssql/data/myFile.bak'
如果您的设置需要,请使用sudo执行。假设bash位于容器的路径中,并且与容器一起执行的用户具有执行chmod的权限


您不需要-it,因为它不是一个交互式会话,只在容器中执行一个进程。

我假设您有一个正在运行的容器,并且您希望将一个文件导入其中。此更改可能会绑定到容器的生存期,除非该文件位于卷上

docker exec <my-app container id> bash -c 'chmod +r /var/opt/mssql/data/myFile.bak'
如果您的设置需要,请使用sudo执行。假设bash位于容器的路径中,并且与容器一起执行的用户具有执行chmod的权限


你不需要它,因为它不是一个交互式会话,只在容器中执行一个进程。

我不知道docker,但是你不能完全不使用bash子shell吗?是的,像chmod这样的二进制文件可以直接运行;对于运行命令,我更喜欢一种更通用的基于shell的方法,这样您就可以直接在终端中键入您想要键入的内容,包括像&&或cd之类的结构……我在尝试查找已装入的卷时不允许使用此操作。添加-u root解决了这个问题。我不知道docker,但是你不能完全不使用bash子shell吗?是的,像chmod这样的二进制文件可以直接运行;对于运行命令,我更喜欢一种更通用的基于shell的方法,这样您就可以直接在终端中键入您想要键入的内容,包括像&&或cd之类的结构……我在尝试查找已装入的卷时不允许使用此操作。添加-u根解决了这个问题。