# 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up