2015-04-17 4 views
42

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

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, я попытался запустить команды и как корень и, как правило, добавлено $(boot2docker shellinit 2> /dev/null) до ~/.profile в соответствии с инструкциями here, restarted my PC и переустановлено OpenSSL.

Любая идея, что мне не хватает? Может ли это быть аппаратной проблемой?

+2

Вы используете mac os? boot2docker для mac. это звучит для меня, как будто вы не запустили демон докеров. docker работает в двух частях, демон работает в фоновом режиме. то вы подключаетесь к демону с помощью docker ps или запуска docker. Когда вы подключаетесь, вы запускаете докер в качестве клиента. поэтому сделайте ps -ax | grep docker. если его там нет, то докеры -d (или sudo docker -d) – Greg

+0

Да, теперь это работает. По какой-то причине «docker -d», похоже, не упоминается в документации. Кстати, безопасно ли запускать его как «docker -d &», чтобы вернуть оболочку? –

+0

Поскольку вы используете Mint, ищите сценарий upstart для сервера докеров –

ответ

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 как имя службы и ваши значения по умолчанию.

еще несколько ссылок для обозначения - auto start, upstart

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

14

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

+1

Это точно так. Кажется, это не проблема.Нужно ли запускать демон докеров, чтобы работать – Beccari

+0

, вы использовали запуск док-станции службы или запуск док-станции sudo? – lvthillo

+0

Или зарегистрировать его как услугу при запуске linux: #systemctl enable docker.service – jonincanada

7

Try установка AppArmor

sudo apt install apparmor 

Есть другие вещи, чтобы искать in this answer тоже.

+0

Я сделал новую установку на ubuntu 12.04 (после обновления ядра), и я не знаю, зачем это делать, я решил установить apparmor – armandfp

+2

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

3

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

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

0

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

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

+0

Дополнительные инструкции по установке и настройке для Ubuntu можно найти на странице https://docs.docker.com/engine/installation/ubuntulinux/. – mkcor

0

В моем случае это было из-за файл /Users/user/.ssh/config имеет разрешение 777. Чтобы проверить его запустить в терминале ssh [email protected]

4

Я сталкивался с таким же вопросом, когда я создавал Docker изображение из Дженкинс просто добавить пользователя докер группы а затем перезапустить Docker услуг и в моем случае я должен перезапустить службы 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: 

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

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

sudo docker ps -a

sudo docker run hello-world

Надеется, что это помогает.

+0

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

1

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

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

[email protected]:~$ sudo service docker restart 
[email protected]:~$ 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. 

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

-3
sudo chmod 777 /var/run/docker.sock 
+4

Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и/или почему оно решает проблему, улучшит долгосрочную ценность ответа. –

+1

chmod 777 предоставляет все права (чтение, запись, исполнение) всем процессам, его плохую практику использования 777, но она решает проблему, как вы сказали @DonaldDuck – Eliethesaiyan

+1

'chmod 777'? О нет. – Pang

1

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

0

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

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

Смежные вопросы