解決Docker必須使用sudo操作的問題

操作步驟如下

1.創建docker組:sudo groupadd docker

2.將當前用戶加入docker組:sudo gpasswd -a ${USER} docker

3.重啟服務:sudo service docker restart

4.刷新docker成員:newgrp – docker

【註】:在ubuntu下親測,其他linux沒有測試。

補充:linux下docker安裝,以及配置不使用sudo命令執行docker

安裝

執行以下命令即可

wget -qO- https://get.docker.com/ | sh

不使用sudo命令執行docker

為什麼需要創建docker用戶組?

Docker守候進程綁定的是一個unix socket,而不是TCP端口。這個套接字默認的屬主是root,其他是用戶可以使用sudo命令來訪問這個套接字文件。因為這個原因,docker服務進程都是以root帳號的身份運行的。

為瞭避免每次運行docker命令的時候都需要輸入sudo,可以創建一個docker用戶組,並把相應的用戶添加到這個分組裡面。當docker進程啟動的時候,會設置該套接字可以被docker這個分組的用戶讀寫。這樣隻要是在docker這個組裡面的用戶就可以直接執行docker命令瞭。

警告:該dockergroup等同於root帳號,具體的詳情可以參考這篇文章: Docker Daemon AttackSurface .

1 使用有sudo權限的帳號登錄系統。

2 創建docker分組,並將相應的用戶添加到這個分組裡面。

sudo usermod -aG docker your_username

3 退出,然後重新登錄,以便讓權限生效。

4 確認你可以直接運行docker命令。

$ docker run hello-world

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。