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

簡介

默認安裝完 docker 後,每次執行 docker 都須要運行 sudo 命令,很是浪費時間影響效率。若是不跟 sudo,直接執行 docker images 命令會有以下問題:php

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?sql

因而考慮如何免 sudo 使用 docker,通過查找資料,發現只要把用戶加入 docker 用戶組便可,具體用法以下。docker

免 sudo 使用 docker

  • 若是尚未 docker group 就添加一個:json

    sudo groupadd docker
  • 將用戶加入該 group 內。而後退出並從新登陸就生效啦。緩存

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

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

    newgrp - docker
    
    OR
    
    pkill X

注意,最後一步是必須的,不然由於 groups 命令獲取到的是緩存的組信息,剛添加的組信息未能生效,因此 docker images 執行時一樣有錯。unix

緣由分析

  • 由於 /var/run/docker.sock 所屬 docker 組具備 setuid 權限rest

    $ sudo ls -l /var/run/docker.sock
    srw-rw---- 1 root docker 0 May 1 21:35 /var/run/docker.sock
相關文章
相關標籤/搜索