Zainstalowałem dokera zgodnie z opisem tutaj . Używam Ubuntu Trusty 14.04 (LTS) (64-bit) . Wszystko podczas instalacji było w porządku. Również polecenie $ sudo docker run -i -t ubuntu /bin/bash
kończy się dobrze (po wpisaniu „exit” w otwartej konsoli. Ale kiedy próbuję zrobić coś innego, dostaję „odmowę dostępu”. Na przykład:
`$ sudo docker run -d -P training/webapp python app.py`
Reuslts in Post http:///var/run/docker.sock/v1.12/containers/create: dial unix /var/run/docker.sock: permission denied
` docker info`
Reuslts in Get http:///var/run/docker.sock/v1.12/info: dial unix /var/run/docker.sock: permission denied
Jak to rozwiązać? Przejrzałem Google na temat problemu, ale nie mogę znaleźć rozwiązania dla mojej sprawy.
źródło
exec $SHELL
nie. Chciałbym wiedzieć, za pomocą którego mechanizmu wylogowanie rozwiązało problem. To nie jest Windows!/etc/selinux/config
i umieścićSELINUX=disabled
, a następnie ponownie uruchomić LinuxJeśli korzystasz z CentOS lub RedHat, być może będziesz musiał najpierw wyłączyć SELinux, uruchamiając:
Eiter zrestartuje się później, aby ponownie włączyć SELinux lub uruchomić
setenforce 1
.źródło
Miałem ten sam problem z powodu selinux. Możesz sprawdzić, czy winowajcą jest selinux:
setenforce 0
Jeśli wyłączenie selinux rozwiązało problem, to nie jest powód, aby pozostawić go wyłączonym:
setenforce 1
setsebool docker_connect_any true
--priviledged
opcjąźródło
Zakładam, że twoja nazwa użytkownika jest już w grupie dokerów. Aby to sprawdzić, wydaj poniższe polecenie.
Jeśli nie, musisz dodać użytkownika do grupy dokerów, wykonując poniższe polecenie.
Wykonanie polecenia
sudo systemctl start docker
powoduje utworzenie procesu dokowania. Ten proces dokera zawieradockerd
wątek demona. Polecenie tworzy również domyślnedocker.sock
gniazdo Unix.docker.sock
Gniazdo ciągły słuchałydockerd
demon wątku. Dzięki temu można wykonywaćdocker.pid
proces IPC na poziomie jądra . Aby móc korzystać z tego gniazda dokowania, musisz mieć odpowiednie uprawnienia z poziomu procesu (docker.pid
) i poziomu pliku (docker.sock
). Wykonanie poniżej dwóch poleceń powinno rozwiązać Twój problem.sudo chmod a+rwx /var/run/docker.sock # You can provide just execute permission sudo chmod a+rwx /var/run/docker.pid
źródło
W obecnej wersji nie musimy dodawać grupy
docker
.Istnieje automatycznie podczas instalacji. Możesz to sprawdzić za pomocą polecenia:
Aby więc zarządzać Dockerem jako użytkownik inny niż root , po prostu dodaj go do grupy dokerów, a następnie wyloguj się i zaloguj ponownie, aby ponownie ocenić członkostwo w grupie:
Aby to sprawdzić po ponownym zalogowaniu
Możesz nawet wymusić użycie
GROUP:docker
jako nowej grupy podstawowej:Aby to sprawdzić po ponownym zalogowaniu
źródło