root以外のユーザーはdockerを使用する権限がありません
1743 ワード
docker run実行時プロンプトno permission
centosにdockerをインストールする公式ドキュメントdocker-ceをインストールするときにdockerユーザーグループが自動的に作成されましたが、dockerユーザーグループ$ sudo usermod -aG docker $USER
または$ sudo usermod -aG docker { }
に手動でユーザーを追加する必要がありますが、dockerユーザーグループにユーザーを追加した後も、ubuntu 14.04のbashを実行するようにno permissionにプロンプトします.[hsowan@localhost shell-workspace]$ docker run -it --rm ubuntu:14.04 bash
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
why? なぜなら、ユーザはdockerユーザグループに加入しているが、現在dockerユーザグループに切り替えられていないため、1人のユーザが同時に複数のユーザグループに属している場合、ユーザは他のユーザグループの権限を持つようにユーザグループ間で切り替えることができるからである.$ newgrp docker
root以外のユーザーでdocker関連のコマンドを実行できるようになりました
ユーザーにユーザーグループを追加する以外に、root以外のユーザーがdocker関連のコマンドを実行できる方法はありますか?
OK、じゃあ/var/run/docker.を見てみましょう.sockの権限$ sudo ll /var/run/docker.sock
は、次の結果を得る.srw-rw----. 1 root docker 0 Sep 22 15:29 /var/run/docker.sock
/var/run/docker.sock
の権限$ sudo chmod 666 /var/run/docker.sock
を直接変更すると、root以外のユーザーの下でdockerを実行できます.$ docker run -it --rm ubuntu:14.04 bash
root@5c60abab6425:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
root@5c60abab6425:/# exit
exit
[hsowan@localhost shell-workspace]$ docker run -it --rm ubuntu:14.04 bash
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
OK、じゃあ/var/run/docker.を見てみましょう.sockの権限
$ sudo ll /var/run/docker.sock
は、次の結果を得る.srw-rw----. 1 root docker 0 Sep 22 15:29 /var/run/docker.sock
/var/run/docker.sock
の権限$ sudo chmod 666 /var/run/docker.sock
を直接変更すると、root以外のユーザーの下でdockerを実行できます.$ docker run -it --rm ubuntu:14.04 bash
root@5c60abab6425:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
root@5c60abab6425:/# exit
exit