docker kubernetes ingress - Я пытаюсь подключиться к демону с поддержкой TLS без TLS?




10 Answers

Для меня $(boot2docker shellinit 2> /dev/null) запуском $(boot2docker shellinit 2> /dev/null) .

Это запускает вывод команды boot2docker shellinit (три строки set -x ... ) в вашем текущем сеансе терминала, что позволяет команде docker знать, где найти виртуальную машину boot2docker.

Добавляя $(boot2docker shellinit 2> /dev/null) в ~/.bash_profile файла ~/.bash_profile , убедитесь, что команда docker настроена каждый раз, когда вы открываете свой терминал.

Для людей, использующих оболочку Fish: boot2docker shellinit ^ /dev/null | source boot2docker shellinit ^ /dev/null | source .

Обратите внимание, что 2> /dev/null (и эквивалент Fish ^ /dev/null ) являются необязательными. Как и @ pablo-fernandez, это скрывает строки Writing ..

nginx example

Я пытаюсь узнать о Docker , но я продолжаю получать загадочные (для меня) сообщения об ошибках.

Возможно, самый простой пример - попытка распечатать версию Docker I, установленную:

$ sudo docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.16/version:
    dial unix /var/run/docker.sock: no such file or directory.
    Are you trying to connect to a TLS-enabled daemon without TLS?

Я только что прошел через руководство пользователя и выполнил каждый шаг в точности, поэтому я удивлен, что получил это сообщение ... Что мне теперь делать?

Я только заметил, что если я не использую sudo я не получаю ошибку:

$ docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8

Конечно, это не решение, так как мне может понадобиться sudo где-то в дороге ...

Я просто нашел еще одну страницу, в которой говорилось: « Если вы используете OS X, вам не следует использовать sudo ». Я не знаю, имеют ли они значение только для этого примера или вообще.




В моем случае (Linux Mint 17) я делал разные вещи, и я не уверен, какие из них абсолютно необходимы.

Я включил отсутствующие пакеты Ubuntu:

$ sudo apt-get install apparmor lxc cgroup-lite

Пользователь добавил в групповой docker :

$ sudo usermod -aG docker ${USER}

Начальный демон (openSUSE просто нуждается в этом)

$ sudo docker -d

Благодаря \ Attribution

Спасибо Усман Исмаил , потому что, возможно, это была последняя вещь ...

Глупый вопрос, но вы начали демон docker? - Усман Исмаил Дек 17 '14 в 15:04

Спасибо также [email protected] за решение, которое сработало для меня, потому что я не проверял демона, когда читал комментарий Усмана.

Комментарий GitHub :

sudo apt-get install apparmor lxc cgroup-lite
sudo apt-get  install docker.io
# If you installed docker.io first, you'll have to start it manually
sudo docker -d
sudo docker run -i -t ubuntu /bin/bash

Спасибо за сообщение fredjean.net за то, что вы заметили недостающие пакеты и забыли о инструкциях по установке Ubuntu по умолчанию и google о других способах

Оказывается, пакеты cgroup-lite и lxc по умолчанию не установлены в Linux Mint. Установка обоих позволила мне запустить bash в базовом изображении, а затем создать и запустить мое изображение.

Благодаря комментарию brettof86 о openSUSE




Убедитесь, что демон Docker запущен:

service docker start

Это исправило это для меня!




Вам нужно будет сделать:

$boot2docker init
$boot2docker start

Исправлены следующие настройки:

$export DOCKER_HOST=tcp://192.168.59.103:2376
$export DOCKER_CERT_PATH=/Users/{profileName}/.boot2docker/certs/boot2docker-vm
$export DOCKER_TLS_VERIFY=1



На Ubuntu после установки lxc-docker вам нужно добавить своего пользователя в группу пользователей докеров :

sudo usermod -a -G docker myusername

Это связано с разрешениями файлов сокетов:

srw-rw---- 1 root docker 0 Mar 20 07:43 /var/run/docker.sock

НЕ ИСПОЛЬЗУЙТЕ usermod БЕЗ «-a», как это предлагается в одном из других комментариев, или он уничтожит настройки ваших дополнительных групп и просто покинет группу «докер»

Вот что произойдет:

➜  ~  id pawel
uid=1000(pawel) gid=1000(pawel) groups=1000(pawel),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare),998(docker)
➜  ~  usermod -G docker pawel
➜  ~  id pawel               
uid=1000(pawel) gid=1000(pawel) groups=1000(pawel),998(docker)



Все, что вам нужно для запуска Docker на Linux Ubuntu / Mint:

sudo apt-get -y install lxc
sudo gpasswd -a ${USER} docker
newgrp docker
sudo service docker restart

При необходимости вам может потребоваться установить две дополнительные зависимости, если вышеуказанное не работает:

sudo apt-get -y install apparmor cgroup-lite
sudo service docker restart



Для меня работали следующие шаги:

  1. Я заметил, что работающий docker run hello-world с этой носовой ошибкой, как в вопросе, но работает sudo docker run hello-world .
  2. Я добавил моего текущего пользователя в группу docker , sudo adduser user docker . Затем вы должны перезагрузить компьютер или использовать su - user (проверьте, используя команду groups если они находятся в группе docker ).

После этого hello-world начал работать.

Мой ответ основан на том, как я могу использовать докер без sudo? что объясняет, что пошло не так.




У меня такая же проблема. Простая service docker restart решила проблему.




Убедитесь, что

127.0.0.1    localhost

в вашем

`/etc/hosts `

файл.




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

sudo groupadd docker
sudo usermod -aG docker $USER

Выйдите из системы и войдите в систему, чтобы ваше членство в группе было переоценено.

docker run hello-world

Источник: Управление докером как пользователем без полномочий root




Related


Tags

docker