Я установил Docker через Магазин программного обеспечения, который указал, что это был пакет Snap. Думаю, это нормально, но, к сожалению, каждая команда Docker, которую я пробовал, не работает:
$ docker info
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30/info: dial unix /var/run/docker.sock: connect: permission denied
Есть идеи, как это исправить?
Редактировать: я обошел это сейчас, установив Docker из собственных репозиториев Docker , что может сработать и для людей, просматривающих этот вопрос в будущем. Я оставляю вопрос открытым для тех, кто хочет иметь возможность запустить его из Snap.
16.04
ubuntu-gnome
snap
docker
Винсент
источник
источник
docker
группу,id -nG
не показывал docker, и любаяdocker
команда привела к ошибке отказа в доступе. Выйти из системы и вернуться обратно не получилось, потому что системный процесс Docker продолжает работать. Перезагрузка системы или перезапуск docker показали пользователя как часть группы docker и позволили выполнять команды docker. ПРИМЕЧАНИЕ: 0 респ., Не могу добавить комментарий.Ответы:
Это со страницы GitHub, вы пробовали эти точные шаги:
Из Docker Snap GitHub
источник
addgroup
инструкциям, которые, как мне кажется, касаются того, что я сделал, согласно другим ответам. К сожалению, я предпочел бы больше не трогать работающую в данный момент систему, но я бы хотел услышать это, если кто-то попробует это и сможет заставить ее работать.Сообщение об ошибке говорит вам, что ваш текущий пользователь не может получить доступ к модулю докера, потому что у вас нет прав доступа к сокету Unix для связи с механизмом.
Временное решение
Используйте
sudo
команду для выполнения команд с повышенными правами доступа каждый раз.Постоянное (предлагаемое) решение
Добавить текущего пользователя в
docker
группу. Это можно сделать, набравВы должны выйти и войти снова, чтобы членство в группе вступило в силу.
Источник: techoverflow.net
источник
docker
группы не существовало. Затем я сначала запустил,sudo addgroup docker
а затем повторно выполнил вашу команду, затем вышел из системы и снова. К сожалению, ошибка, показанная в вопросе, сохраняется ...newgrp docker
или выйдите из системы иgroups vincent
дает:vincent adm cdrom sudo dip plugdev lpadmin sambashare docker
sudo /etc/init.d/docker status
илиsudo service docker status
проверить это.ps cax | grep dockerd
дает31034 ? Ssl 0:05 dockerd
.Я предполагаю, что ваше имя пользователя уже находится в группе Docker. Чтобы проверить это, выполните команду ниже.
Если нет, вам нужно добавить пользователя в группу Docker с помощью команды ниже.
Когда вы выполняете команду
sudo systemctl start docker
, она создает процесс докера. Этот процесс докера содержитdockerd
поток демона. Команда также создаетdocker.sock
сокет Unix по умолчанию .docker.sock
Гнездо непрерывно слушаетdockerd
демона потока. Это позволяет вам выполнять IPC на уровне ядра сdocker.pid
процессом. Чтобы иметь возможность использовать этот док-сокет, вам необходимо иметь соответствующие разрешения от уровня процесса (docker.pid
) и уровня файла (docker.sock
). Таким образом, выполнение ниже двух команд должно решить вашу проблему.sudo chmod a+rwx /var/run/docker.sock # You can provide just execute permission sudo chmod a+rwx /var/run/docker.pid
источник
не требует перезагрузки и является более безопасным
источник
Вы должны добавить пользователя в группу Docker ( см. Официальные документы ).
Вы можете добавить
sudo
перед командой или добавить пользователя вdocker
группу с помощью этой команды:Выйдите из системы и снова войдите в нее, чтобы вновь оценить членство в группе.
источник