# Docker Got permission denied 解決方法 ## 問題說明 在部屬的時候,要執行 docker 相關指令,卻出現以下錯誤訊息。 ``` 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.24/containers/laradock_workspace_1/json": dial unix /var/run/docker.sock: connect: permission denied ``` 會出現這個訊息代表目前的使用者沒有權限存取 docker engine。而使用 `sudo` 就可以執行是因為 docker service 都是以 `root` 身份執行的。 為了不需要每次下指令都要加上 `sudo`,只要把目前使用者加到 docker 群組裡就可以了。 ## 解決方法 >只要把使用者加到 docker 群組,當 docker service 啟動時,會以這個群組的成員來初始化相關服務。 在把使用者加入群組之前,可以先查看目前是否已有 docker 群組存在。 :::info 當前使用者:User_Name ::: ```bash $ cat /etc/group root:x:0: ... google-sudoers:x:1001:User_Name data:x:1002: User_Name:x:1003: docker:x:998: ``` 若不存在可先新增群組。 ```bash $ sudo groupadd docker ``` 若已經存在群組,則將目前使用者加入。 ```bash $ sudo usermod -aG docker $USER ``` 加完使用者後要重新登錄伺服器才會生效,重新進來後可以再查看一次群組,會發現使用者已經被加在群組後面了。 ```bash $ cat /etc/group root:x:0: ... google-sudoers:x:1001:User_Name data:x:1002: User_Name:x:1003: docker:x:998:User_Name ``` 若還是無法解決問題,有人也提出另一個解法。 >因為問題是出在權限不足,如果以上方法都不管用的話,可以手動修改權限來解決這個問題 > `sudo chmod 777 /var/run/docker.sock` ## 補充 查看目前使用者的所有群組 ```bash $ groups ``` ###### 參考資料 - [Docker Engine|Post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall/) - [[解決方法] docker: permission denied](http://andy51002000.blogspot.com/2019/02/docker-permission-denied.html) ###### tags: `Docker` `部署` `後端` `權限` `Linux`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.