Докер: Вы пытаетесь подключиться к демону с поддержкой TLS без TLS?

39

В Linux Mint 17.1 x86_64 с ядром 3.13.0-48-generic и OpenSSL версии 1.0.1f-1ubuntu2.11; всякий раз, когда я пытаюсь выполнить любую команду докера (например, docker login или docker run hello-world), я получаю следующую ошибку:

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

Я создал группу под названием docker, используя sudo usermod -aG docker username, я попробовал запустить команды как от root, так и от обычного, добавил $(boot2docker shellinit 2> /dev/null) to ~/.profile в соответствии с инструкциями здесь, перезапустил мой компьютер и переустановил OpenSSL.

Любая идея, что мне не хватает? Это может быть проблема с оборудованием?

  • 3
    вы используете Mac OS? boot2docker для Mac. для меня это звучит так, будто вы еще не запустили Docker-демон. Докер работает в двух частях, демон работает в фоновом режиме. затем вы подключаетесь к демону с помощью Docker PS или запуска Docker. Когда вы подключаетесь, вы запускаете Docker как клиент. так, сделай ps -ax | grep docker. если его там нет, выполните docker -d (или sudo docker -d)
  • 0
    Да, теперь это работает. По какой-то причине docker -d не упоминается в документации. Кстати, безопасно ли запускать его как docker -d & чтобы я вернул свою оболочку?
Показать ещё 2 комментария
Теги:
docker
mint
daemon

12 ответов

18
Лучший ответ

Вы можете проверить, запущен ли он, выполнив команду ps -ef. Вы также можете добавить grep к docker, если хотите уменьшить количество результатов (используя | grep docker). Если он не работает, выполните

sudo service docker start

ИЛИ если он все еще не работает, то

Вы можете ссылаться на эту ссылку

docker docs

Вы можете запустить docker run -d или docker run -d &, чтобы вы могли использовать один и тот же терминал или даже закрыть его, если. Он установит значение равным true, поэтому ваш контейнер будет работать в режиме "отсоединения" в фоновом режиме.

Вы также можете автоматически запустить его, когда ваша ОС начнет использовать update-rc.d servicename defaults, или вы также можете обратиться к ссылкам ниже, где вы должны указать docker как имя службы и ваши значения по умолчанию.

Еще несколько ссылок для ссылки - автозапуск, upstart

Это разные способы сделать это.

14

Я развернул докер на CentOS 7, и мой друг сначала помог мне проверить, действительно ли запущен процесс docker или нет. Он использовал команду ps -ef | grep docker. Оказалось, что процесс вообще не работает. Наконец, он начал этот процесс, используя команду service docker start. В итоге проблема была решена.

  • 1
    Именно в этом суть. Кажется, не является проблемой вообще. Это просто демон Docker должен быть запущен для того, чтобы работать
  • 0
    Вы использовали сервис Docker Start или Sudo Service Docker Start?
Показать ещё 1 комментарий
7

Попробуйте установить apparmor

sudo apt install apparmor

В этом ответе также можно найти .

  • 0
    я сделал новую установку на Ubuntu 12.04 (после обновления ядра), и я не знаю, зачем выдавать эту ошибку, я решил установить apparmor
  • 2
    Этот ответ требует больше голосов. В официальных инструкциях по установке Docker для Ubuntu этот шаг отсутствует. Я установил Docker три раза в чистые системы Ubuntu (один раз с 12.04 и дважды с 14.04). Каждый раз, когда я тратил час на поиск в Интернете, только чтобы наткнуться на этот ТАК ответ!
4

У меня возникла такая же проблема, когда я попытался выполнить некоторые онлайн-ресурсы; Я смог разрешить это, запустив docker в качестве суперпользователя, попробуйте добавить sudo перед своими командами докеров:

sudo docker ps -a

sudo docker run hello-world

Надеюсь, что это поможет.

  • 0
    sudo docker [command] решила проблему для меня при использовании Linux.
4

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

Это была ошибка, которую я получил

http:///var/run/docker.sock/v1.19/build?cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&memory=0&memswap=0&rm=1&t=59aec062a8dd8b579ee1b61b299e1d9d340a1340: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
FATAL: Failed to build docker image from project Dockerfile
java.lang.RuntimeException: Failed to build docker image from project Dockerfile


Solution: 

[root@Jenkins ssh]# groupadd docker
[root@Jenkins ssh]# gpasswd -a jenkins docker
Adding user jenkins to group docker
[root@Jenkins ssh]# /etc/init.d/docker restart
Stopping docker:                                           [  OK  ]
Starting docker:                                           [  OK  ]
[root@Jenkins ssh]# /etc/init.d/jenkins restart
Shutting down Jenkins                                      [  OK  ]
Starting Jenkins                                           [  OK  ]
[root@Jenkins ssh]#
3

Сегодня утром эта проблема возникла. Вы можете просто сделать service docker start. Он работает для centos (может работать для всех), и его одна из тех маленьких ворчащих вещей, которые я все время забываю.

Технически, когда вы сначала устанавливаете такую ​​службу, как docker или httpd (apache), ее необходимо запустить, иначе вы получите эту ошибку. Вы также можете увидеть статус других сервисов, выполнив service service_name status, но опять же, как это для моего centos 7.

1

Я решил это, выполнив эту команду в режиме sudo, например. "sudo docker images"

1

Это может случиться, когда служба докеров не может запускаться. sudo service docker start или restart, возвращающий выходной сигнал, не означает, что он успешно запущен. Вы можете использовать sudo /etc/init.d/docker status, чтобы узнать, не удалось ли запустить и почему.

В моем случае это было из-за нехватки дискового пространства.

username@computer:~$ sudo service docker restart
username@computer:~$ sudo /etc/init.d/docker status
? docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: failed (Result: start-limit) since Mon 2015-12-21 15:11:59 PST; 21s ago
     Docs: http://docs.docker.com
  Process: 26463 ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS (code=exited, status=1/FAILURE)
 Main PID: 26463 (code=exited, status=1/FAILURE)

Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=info msg="Listening for HTTP on fd ()"
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=info msg="+job init_networkdriver()"
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=info msg="-job init_networkdriver() = OK (0)"
Dec 21 15:11:59 computer docker[26463]: time="2015-12-21T15:11:59-08:00" level=fatal msg="Shutting down daemon due to errors: Insertion failed because database is full: database or disk is full"
Dec 21 15:11:59 computer systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Dec 21 15:11:59 computer systemd[1]: Unit docker.service entered failed state.
Dec 21 15:11:59 computer systemd[1]: docker.service failed.
Dec 21 15:11:59 computer systemd[1]: start request repeated too quickly for docker.service
Dec 21 15:11:59 computer systemd[1]: Failed to start Docker Application Container Engine.
Dec 21 15:11:59 computer systemd[1]: docker.service failed.

После удаления некоторых файлов я смог перезапустить службу и нормально запускать контейнеры докеров.

0

Перейдите в ту же проблему после выполнения шагов https://docs.docker.com/linux/step_one/. служба докеров, и я также добавил пользователя в группу докеров. команды docker не работали без sudo.

Для меня это решило перезагрузить ПК. Примечание. Перед перезагрузкой ПК я также попытался остановить и запустить демон докеров. Я на Ubuntu 12.04.

0

В моем случае это из-за того, что файл /Users/user/.ssh/config имеет разрешения 777. Чтобы проверить его запуск в терминале ssh docker@localhost

0

Перейдите в ту же проблему после выполнения шагов https://docs.docker.com/linux/step_one/. служба докеров, и я также добавил пользователя в группу докеров. команды docker не работали без sudo.

Для меня это решило перезагрузить ПК. Примечание. Перед перезагрузкой ПК я также попытался остановить и запустить демон докеров. Я на Ubuntu 12.04.

-3
sudo chmod 777 /var/run/docker.sock
  • 4
    Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.
  • 1
    chmod 777 дает все права (чтение, запись, выполнение) всем процессам, плохая практика - использовать 777, но это решает проблему, как вы сказали @DonaldDuck
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню