FATA[0000] (省略) Are you trying to connect to a TLS-enabled daemon without TLS?


簡介

默認安裝完 docker 后,每次執行 docker 都需要運行 sudo 命令,非常浪費時間影響效率。如果不跟 sudo,直接執行 docker images 命令會有如下問題:

FATA[0000] Get http:///var/run/docker.sock/v1.18/images/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?

於是考慮如何免 sudo 使用 docker,經過查找資料,發現只要把用戶加入 docker 用戶組即可,具體用法如下。

免 sudo 使用 docker

  • 如果還沒有 docker group 就添加一個:

    sudo groupadd docker
  • 將用戶加入該 group 內。然后退出並重新登錄就生效啦。

    sudo gpasswd -a ${USER} docker
  • 重啟 docker 服務

    sudo service docker restart
  • 切換當前會話到新 group 或者重啟 X 會話

    newgrp - docker
    
    OR
    
    pkill X

注意,最后一步是必須的,否則因為 groups 命令獲取到的是緩存的組信息,剛添加的組信息未能生效,所以 docker images 執行時同樣有錯。

原因分析

  • 因為 /var/run/docker.sock 所屬 docker 組具有 setuid 權限

    $ sudo ls -l /var/run/docker.sock
    srw-rw---- 1 root docker 0 May 1 21:35 /var/run/docker.sock


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM