проблема с докером

32

Я пытаюсь узнать о "Docker" в Ubuntu 15.04.

Когда я даю какую-либо команду, используя docker, например, «docker run image», она выдает следующую ошибку:

FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

Я не понимаю, что это значит.

Риши Кант
источник
5
Я получил это сообщение об ошибке, а затем запустил демон с sudo service docker start. Тогда я смог бежать sudo docker run hello-world. Удачи.
Оболочка

Ответы:

31

Есть две возможные причины, почему вы получаете эту ошибку:

  1. Демон Docker не работает. Вы можете проверить это с sudo /etc/init.d/docker status.

  2. Демон Docker работает, но не настроен на прослушивание /var/run/docker.sock. Вы можете проверить, /etc/default/dockerесли какой-либо -Hпараметр указан в DOCKER_OPTS.

Андреас Вайтен
источник
3
+1. Я только должен был использовать, $ sudo service docker statusтак как я получил$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
Исаак
После запуска sudo /etc/init.d/docker statusя узнал, что служба Docker не работает. Я бегу sudo /etc/init.d/docker start, затем я смог запустить свой образ докера.
Halil
Кажется, / etc / default / docker больше не используется в systemd (Ubuntu 16.04+). Кстати, в systemd каноническим способом проверки статуса демона был бы sudo systemctl status docker.
Пабло А
38

После установки Docker вам будет предложено добавить вашего пользователя в группу Docker. Просто запустите показанную команду:

sudo usermod -aG docker $USER

Вам нужно будет закрыть сеанс и снова войти в систему, чтобы изменения вступили в силу.

Samoht
источник
наверное самый простой. Я не знаю, работает ли это, хотя (использовал @ decebal's) ответ.
Яир Даон
Я не получил эту подсказку. Я на Raspberry Pi.
Игорь Ганапольский
Чтобы добавить себя в группу Docker позже, запустите sudo usermod -a -G docker <user>. Смотрите здесь для получения дополнительной информации.
Хью W
3
Акцент на "закрой свою сессию" - спасибо!
Долан
В Ubuntu 18.04 с Gnome мне пришлось перезапустить систему, чтобы это работало. Просто выйти из системы и вернуться обратно не получилось: /
Золтан
15

Попробуйте применить ОС после установки докера, чтобы применить права группы, если ваш пользователь присоединился к группе докеров.

Обновить:

При установке Docker в Ubuntu 14.04 установщик рекомендует, что ваш пользователь добавляет в группу Docker для доступа к Docker Service.

смотреть на

Демон docker связывается с сокетом Unix вместо порта TCP. По умолчанию этот сокет Unix принадлежит пользователю root, и другие пользователи могут получить к нему доступ с помощью sudo. По этой причине демон docker всегда запускается от имени пользователя root. Чтобы избежать использования sudo при использовании команды docker, создайте группу Unix с именем docker и добавьте в нее пользователей. Когда демон docker запускается, он делает владение сокетом Unix доступным для чтения / записи группой docker.

источник: https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group

MURATSPLAT
источник
2
Вы должны объяснить, почему это поможет.
Гюнтберт
1
@ Guntbert Я обновил свой ответ ..
MURATSPLAT
@MURATSPLAT, QBi, gunbert Спасибо я найти решение
риши Kant
Сделать эффект изменения разрешения группы. Вам не нужно перезагружаться. Выйти достаточно.
Тим У
@TimWu В Ubuntu 18.04 с Gnome мне пришлось перезапустить систему - просто выход из системы и повторный вход не работали: /
Золтан
10

попробуйте использовать, sudo docker imagesчтобы проверить, есть ли контейнеры, вызываемые <image>на вашем хосте.

Выполнение docker run <image>запускает контейнер, вызываемый <image>на вашем хост-компьютере, если ваш хост-компьютер не имеет этого контейнера, то Docker автоматически извлекает контейнер с именем '' из концентратора репозитория, так же, как вы работаете docker pull <image>. Затем, если он по-прежнему не может найти изображение с именем '', он покажет это сообщение об ошибке.

Вы можете попробовать заменить, чтобы hello-worldувидеть, работает ли на вашем компьютере докер.

sudo docker run hello-world

Кроме того, вы должны проверить, если вы должны использовать sudo.

realhu
источник
2
Если бы проблема заключалась в том, что OP не использует sudo, то сообщение об ошибке было бы «отказано в разрешении» вместо «нет такого файла или каталога».
Андреас Вайтен
1
Да, вы правы. Я попробовал это, если у пользователя нет разрешения, сообщение об ошибке будет:FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu
2
попытаться предоставить разрешенияsudo usermod -a -G docker ec2-user
AB
4

Я нашел эту статью полезной: https://docs.docker.com/articles/systemd/ ; Я запускал его в нескольких средах и работал, надеюсь, он вам тоже поможет

Decebal
источник
Ответы только на ссылки не считаются приемлемыми. Пожалуйста, уточните свой ответ, чтобы быть полным.
Флимзи
2
Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Митч
1
Эта системная ссылка кажется мертвой. Вот еще одна ссылка docs.docker.com/engine/admin/systemd
wsams
2

Я получил похожее сообщение при попытке вытащить изображение. Я только что сделал sudo suи смог успешно вытащить изображение.

Омар Ахмед
источник
2
Добро пожаловать в Спросите Ubuntu! Я рекомендую отредактировать этот ответ, чтобы расширить его конкретными сведениями о том, как это сделать. (См. Также Как написать хороший ответ? Для общего совета о том, какие ответы считаются наиболее ценными в Ask Ubuntu.) Однако следует помнить, что запуск Docker в качестве суперпользователя уже предлагался несколько раз.
Дэвид Фёрстер
я получил решение моей проблемы.
Риши Кант