Я установил Докера через хранилище программного обеспечения, которое указало, что был Поспешный пакет. Который меня устраивает, я предполагаю, но к сожалению, каждая команда 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
Какая-либо идея, как зафиксировать это?
Править: Я работал вокруг этого на данный момент путем установки Докера из собственных репозиториев Докера, которые могли бы работать на людей, просматривающих этот вопрос в будущем также. Я оставляю вопрос открытым для тех, кто хочет смочь выполнить его из Снимка, все же.
Сообщение об ошибке говорит Вам, что Ваш текущий пользователь не может получить доступ к механизму докера, потому что Вы испытываете недостаток в полномочиях получить доступ к сокету Unix для общения с механизмом.
Используйте sudo
команда для выполнения команд с поднятыми полномочиями каждый раз.
Добавьте текущего пользователя к docker
группа. Это может быть достигнуто путем ввода
sudo usermod -a -G docker $USER
Необходимо выйти из системы и войти в систему снова, чтобы состав группы вступил в силу.
Источник: techoverflow.net
Это от страницы GitHub, сделал Вы пробуете эти точные шаги:
If you are using Ubuntu Core 16,
Connect the docker:home plug as it's not auto-connected by default:
$ sudo snap connect docker:home
If you are using an alternative snap-compatible Linux distribution ("classic" in snap lingo), and would like to run docker as a normal user:
Create and join the docker group.
$ sudo addgroup --system docker
$ sudo adduser $USER docker
$ newgrp docker
You will also need to disable and re-enable the docker snap if you added the group while it was running.
$ sudo snap disable docker
$ sudo snap enable docker
Необходимо добавить пользователя к группе Докера (см. официальные документы).
Можно добавить sudo
перед командой или можно включить пользователя docker
группа при помощи этой команды:
sudo usermod -aG docker <USER>
Выйдите из системы и войдите в том, так, чтобы Ваш состав группы был переоценен.
Я принимаю, Ваше имя пользователя уже находится в группе докера. Для проверки этого выйдите ниже команды.
id -nG
Если не необходимо добавить пользователя в группу докера ниже команды.
sudo groupadd docker
sudo usermod -aG docker $USER
Когда Вы выполняете команду, 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
sudo setfacl -m user:your_user_name:rw /var/run/docker.sock
не требует перезапуска и более безопасен