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

1653 ワード

概要
デフォルトで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ユーザーグループにユーザーを加入すればよいことがわかりました.具体的な使い方は以下の通りです.
dockerを使用しないsudo
  • dockerグループがまだない場合は、次の項目を追加します.
    sudo groupadd docker

  • は、ユーザをグループに追加する.その後終了して再ログインすると有効になります.
    sudo gpasswd -a ${USER} docker

  • dockerサービスを再起動
    sudo service docker restart

  • 現在のセッションを新しいグループに切り替えるか、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