簡體   English   中英

無法將用戶添加到 docker 組

[英]Can't add user to docker group

我正在嘗試在新系統上設置 docker,當運行 docker 信息時,我得到:

docker -v
=> Docker version 18.09.5, build e8ff056

docker info
=> Got permission denied while trying to connect to the Docker daemon
   socket at unix:///var/run/docker.sock: Get
   http://%2Fvar%2Frun%2Fdocker.sock/v1.39/info: dial unix 
   /var/run/docker.sock: connect: permission denied

按照文檔,我嘗試過:

sudo usermod -a -G docker $USER

不返回 output。當我運行組時:

groups
=> mark adm cdrom sudo dip plugdev lpadmin sambashare

我可以看到一個 docker 組存在:

less /etc/group | grep docker
=> docker:x:131:mark

並且可以看到它擁有一個運行在錯誤消息中的套接字:

ls -la /var/run/ | grep docker
=> 
drwx------  5 root                root                 120 May 25 14:54 docker
-rw-r--r--  1 root                root                   5 May 25 14:54 docker.pid
srw-rw----  1 root                docker                 0 May 25 14:54 docker.sock

那么,為什么我不能使用sudo usermod -a -G docker $USER將自己添加到該組?

您需要重新加載 shell 以使更改生效。 通常,您需要重新啟動 shell 進程,甚至可能需要重新啟動計算機。

例如

sudo usermod -aG docker $USER
sudo reboot

請參閱@4Z4T4R 答案並大拇指https://stackoverflow.com/a/66297855/7961500

在不退出 shell 的情況下加載更改

為了避免啟動一個新的 shell,你可以運行。 (似乎不適用於所有環境)

exec su -l $USER

這將使用加載的更改創建一個新的子 shell,並用它替換您當前的 shell。

如果沒有其他方法適合您。

如果您現在只需要讓它工作,另一種方法是更改​​您的主要組。 這只是一個臨時解決方案,對於任何新外殼,您都需要再次應用它。

export my_group=$(id -gn)
newgrp docker
newgrp $my_group

文檔

您還可以在此處查看官方文檔https://docs.docker.com/engine/install/linux-postinstall/

就我而言,在 Ubuntu 20.04 上,在此命令后運行sudo reboot

$ sudo usermod -aG docker $USER

我確實需要重新啟動我的操作系統(和機器)才能使更改生效。 重新啟動/重新加載 bash 會話未應用新設置。

當然, newgrp docker做“對飛”不重新啟動/重新啟動/重新什么把戲......但一旦會話終止,你的不是docker組下去了。

將此添加為正式答案,因為它真正解決了 OP 和我的(相同)問題。

應該歸功於@Omari Celestine 的建議,但因為我的解釋很爛,我(也許你)需要這個答案提供的字面消歧。

從技術上講,這是一個兩步過程。 跑步

sudo usermod -aG docker $USER

然后,

sg docker -c "bash"

更改 /var/run/docker.sock 文件的權限並重啟 docker 進程。

sudo chown jenkins:jenkins /var/run/docker.sock
sudo 644 /var/run/docker.sock

然后,

sudo service docker restart

在運行 $docker info 之前,請確保 docker 服務已啟動。

如果不是,請通過運行以下命令來啟動服務。

$service 碼頭工人開始

現在你檢查 $docker 信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM