當前位置:首頁 » 數據倉庫 » 配置docker許可權不夠怎麼弄
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

配置docker許可權不夠怎麼弄

發布時間: 2023-06-05 14:55:56

『壹』 Docker:非root用戶啟動操作docker

摘要: docker , linux

一般都是用root用戶啟動和操作docker,當是普通用戶運行容器啟動項目時報錯沒有許可權

docker守護進程後台啟動時,需要讀取Unix套接字 /var/run/docker.sock ,這個文件root所有,docker用戶組可操作,因此普通非docker組的用戶沒有許可權訪問

類似的Mysql客戶端也可以使用socket進行連接,文件在/var/run/mysqld/mysqld.sock

默認是777許可權,如果改成770,則非root用戶或者非mysql組用戶也將無法連接MySQL

退出升氏段root用戶,普通用戶無法報錯無法通過socket連接

本質上還是使用root運行docker,只是在啟動的時候可以以root用戶啟動docker,為了避免每次啟動需要輸入密碼,需要給普通用戶sudo許可權以及可以免密碼方式登錄。
在/etc/sudoers文件中設置免密碼

此時再使用sudo運行docker即可,在其他shell腳本中docker run前面增加sudo

如果不使用sudo則無許可權操作docker

docker安裝之後默認會創建docker組,docker組擁有讀取套接字許可權,因此將該普通用戶加入docker組,該組下所有用戶有訪問unix套接字許可權,最後刷新用戶的初始組即可。
先查看是否有docker用戶,如果沒有需要手動增加

如果/var/run/docker.sock的用戶組不是docker而是root需要使用 chgrp 修改一下

將普通用戶添加到docker組

此時查看test用戶所在的組

發現還是沒有docker組,使用 newgrp 刷新以下用戶的初始組

此時再次查看用戶的組以已經出現docker

然後直接以用戶操作docker即可

或者不使用newgrp直接重新登錄即可

gpasswd是linux下組管理工具,用戶添加用戶到組和從組中刪除用戶,必須是sudo執吵譽行

測試刪除和添加test用戶於docker組

此時退出終端重新登錄則test的docker組消失,再添加進來

添加之後在當前終端不能立刻生效,需要使用核猛newgrp將新增加的組添加到用戶組的集合中刷新,立即生效

以後退出登錄後新登錄進來用戶的用戶組都會更新生效