我已經設置Docker作爲non-root user運行。現在我可以像普通用戶一樣啓動我的容器,我感覺更舒適。裝載捲上的Docker訪問權限。爲什麼他們屬於根?
[email protected]:~$ docker run -it -v ~/test:/test alpine:3.6 sh
/# touch /test/test1
同時在主機上
:
[email protected]:~$ ls -l ~/test/
total 0
-rw-r--r-- 1 root root 0 Jul 31 15:50 test1
爲什麼文件屬於root
?我怎樣才能讓他們和容器中的所有創建的文件都屬於me
?
有趣的事實:這發生在Debian Linux上。相反,在Mac上做同樣的事情,創建的文件將屬於me
。
謝謝,非常好的解釋,這真的幫助我理解!使用用戶命名空間有沒有潛在的負面影響(安全性,性能)?在服務器端,我只是每次想訪問或修改主機端安裝卷中的某些文件時都必須「sudo」而煩惱。 – qqilihq
用戶名稱空間映射之前存在含義。因爲從容器中逃出的東西會直接獲得根訪問權限。但是對於用戶命名空間,即使容器以某種方式到達主機操作系統,它也不具有root權限。所以使用它更安全。關於sudo,如果您使用當前用戶作爲用戶重映射,那麼它不需要sudo就可以工作? –
Re'sudo':的確,這是我的問題背後的原意:)感謝您的信息! – qqilihq