Linux

docker容器內的’/tmp’文件夾的權限從哪裡繼承?

  • July 10, 2021

我有一個 PHP docker 容器無法開始說'session_start' don't have permissions on /tmp/xxxx file.

我發現 ‘/tmp’ 文件夾的權限是**'drwxr-xr-t'. 當我將其更改為 時'drwxrwxrwt'**,容器正常工作。

我可能對我的主機系統做錯了什麼來調試另一個不相關的問題。但我不記得我做了什麼以及可能導致上述問題的原因。

所以我想知道 docker 容器內的 ‘/tmp’ 文件夾的權限是從哪裡繼承的?

提前致謝。:)

您應該在 Dockerfile 中找到答案。

基礎鏡像已經有那些錯誤的權限,或者 Dockerfile 在鏡像建構期間做錯了什麼。

在這兩種情況下,您都可以在 Dockerfile 中修復這個問題,然後重建一個新鏡像。

查看您使用的基本映像,/tmp權限設置正確:

$ docker run -it --rm php:5-apache ls -ald /tmp
drwxrwxrwt 1 root root 4096 Jan 23 00:10 /tmp

這意味著對文件夾權限的修改已經發生在您這邊,無論是在您的 Dockerfile 中的某個步驟建構您的映像時,還是在您執行容器的方式中。如果沒有您的 Dockerfile 或用於執行容器的命令的詳細資訊(包括 docker-compose.yml 文件,如果您使用的話),我認為不可能給出更詳細的答案。

引用自:https://serverfault.com/questions/951079