0
我在樹莓上使用Docker。我想以一個用戶的身份(不是root用戶)從容器中訪問GPIO線路。將主機組導入Docker容器
樹莓運行raspbian 8.0。
綜觀/sys/class
主機上的內容:
[email protected]:~ $ ls -al /sys/class/
total 0
[...]
drwxrwx--- 2 root gpio 0 Sep 27 19:05 gpio
[...]
該文件夾所屬的組GPIO。
當我啓動我的容器是這樣的:
docker run -it --privileged container-name bash
用戶不能訪問該文件夾的GPIO:
[email protected]:/# su user
[email protected]:/$ ls /sys/class/gpio/
ls: cannot open directory /sys/class/gpio/: Permission denied
即使用戶是GPIO組的一部分,因爲我創造Dockerfile中的組並將其分配給我的用戶:
[email protected]:/$ groups user
user : user gpio fuse
這是因爲,由於某些原因,t他gpio組丟失:
[email protected]:/# ls -al /sys/class/
total 0
[...]
drwxrwx--- 2 root 997 0 Sep 27 19:05 gpio
[...]
如何使容器識別組?
作爲解決方法,我可以更改/etc/group
,以便gpio組匹配正確的UID。問題是gpio組的UID可以在我下一次安裝raspberry上的raspbian上更改。
任何方式動態創建gpio組或檢索Dockerfile中的主機gpio GID?