Я установил докер, как описано здесь . Я использую Ubuntu Trusty 14.04 (LTS) (64-разрядная версия) . Все во время установки было хорошо. Также команда $ sudo docker run -i -t ubuntu /bin/bash
завершается хорошо (после того, как я набрал «выход» в открытой консоли. Но когда я пытаюсь сделать что-то еще, я получаю «Отказано в доступе». Например:
`$ sudo docker run -d -P training/webapp python app.py`
Реуслс в Post http:///var/run/docker.sock/v1.12/containers/create: dial unix /var/run/docker.sock: permission denied
` docker info`
Реуслс в Get http:///var/run/docker.sock/v1.12/info: dial unix /var/run/docker.sock: permission denied
Как это решить? Я погуглил о проблеме, но не могу найти решение для своего случая.
источник
exec $SHELL
не сделал. Мне интересно узнать, каким механизмом выхода из системы решена проблема. Это не окна!/etc/selinux/config
и поставитьSELINUX=disabled
, потом перезагрузить LinuxЕсли вы используете CentOS или RedHat, вам, возможно, придется сначала отключить SELinux, выполнив:
Затем перезапустите Eiter, чтобы снова включить SELinux или запустить
setenforce 1
.источник
У меня была такая же проблема, из-за selinux. Вы можете проверить, является ли selinux виновником:
setenforce 0
Если отключение selinux решило вашу проблему, не стоит оставлять его отключенным:
setenforce 1
setsebool docker_connect_any true
--priviledged
опциейисточник
Я предполагаю, что ваше имя пользователя уже находится в группе 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
.Он существует автоматически при установке. Вы можете проверить, используя команду:
Таким образом, чтобы управлять Docker от имени пользователя, не являющегося пользователем root , просто добавьте своего пользователя в группу Docker, затем выйдите из системы и снова войдите в систему, чтобы повторно оценить членство в вашей группе:
Чтобы проверить это при входе в систему
Вы можете даже заставить использовать в
GROUP:docker
качестве своей новой основной группы:Чтобы проверить это при входе в систему
источник