linux running? - Docker не может подключиться к демону докеров





is var (25)


У меня была та же проблема, что и Docker 1.10 на Ubuntu 14.04, и ни один из этих ответов не работал. Для меня исправить было указание драйвера хранилища при запуске демона Docker.

sudo docker daemon --storage-driver=devicemapper

После того, как я обновляю версию Docker до 0.8.0 , я получаю сообщение об ошибке при входе в sudo docker version :

Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?

И я выполнил инструкции и ввел команду sudo docker -d , и я получил следующее:

[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory

Как решить проблему?




Использование приложения Docker CE

Macos

Используйте новое приложение Docker Community Edition для macOS. Например:

  1. Удалите все пакеты Docker Homebrew, которые вы установили до сих пор:

    brew uninstall docker-compose
    brew uninstall docker-machine
    brew uninstall docker
    
  2. Установите приложение вручную или через Homebrew-Cask :

    brew cask install docker
    

    Примечание. Это приложение создаст необходимые ссылки на docker , docker-compose , docker-machine и т. Д.

  3. После запуска приложения проверьте значок «Докер-кит» в меню состояния.

  4. Теперь вы должны иметь возможность использовать команды docker , docker-compose , docker-machine как обычно в терминале .

Связанные с:

  • Brew install docker не включает докерный двигатель?
  • Не удается подключиться к демону Docker на macOS

Linux / Windows

Загрузите Docker CE со страницы загрузки и следуйте инструкциям.




Если вы запускаете Docker на OS X, для меня работает следующий eval.

eval "$(docker-machine env default)"

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

#Docker
eval "$(docker-machine env default)"

Обязательно перезапустите сеанс терминала или запустите источник в bash_profile чтобы изменения вступили в силу.




Linux

Чтобы запустить демон докеров в Linux (из CLI ), выполните:

$ sudo service docker start # Ubuntu/Debian

Примечание. Пропустите символ $ при копировании и вставке.

В RedHat / CentOS запустите: sudo systemctl start docker .

Для инициализации «базовой» файловой системы выполните:

$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start

или вручную:

$ sudo docker -d --storage-opt dm.basesize=20G

Установите docker-machine в Linux

Чтобы установить машинные двоичные файлы в Linux:

  • локально:

    install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine
    
  • Глобальный:

    sudo bash -c 'install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine'
    

Macos

На macOS двоичный файл docker является только клиентом, и вы не можете использовать его для запуска демона-докера, потому что демон Docker использует специфические для Linux функции ядра, поэтому вы не можете запускать Docker изначально в OS X. Таким образом, вам нужно установить docker-machine для создания виртуальной машины и присоединения к ней.

Установите docker-machine на macOS

Если у вас еще нет команды docker-machine , установите ее, используя один из следующих способов:

  • С помощью команды Brew : brew install docker-machine docker .
  • вручную из GitHub :

    install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
    

См .: Начало работы с Docker для Mac .

Настроить docker-machine на macOS

Чтобы запустить Docker Machine через Homebrew, запустите:

brew services start docker-machine

Чтобы создать машину по default (если у вас ее нет, см.: docker-machine ls ):

docker-machine create --driver virtualbox default

Затем настройте среду для клиента Docker:

eval "$(docker-machine env default)"

Затем выполните двойную проверку путем перечисления контейнеров:

docker ps

См .: Начало работы с Docker Machine и локальной виртуальной машиной .

Установите Docker.app на macOS

В качестве альтернативы решению выше вы можете установить приложение Docker:

brew cask install docker

Проверьте это сообщение для получения более подробной информации . См. Также: Не удается подключиться к демону Docker на macOS




У меня также возникла проблема «Не удается подключиться к демону Docker. Является ли демон docker на этом хосте?».

Я забыл использовать sudo . Надеюсь, это поможет некоторым из нас.

$:docker images
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

$:sudo docker images
REPOSITORY   TAG   IMAGE ID   CREATED   SIZE



После подробного расследования эта проблема возникает каждый раз после перезагрузки Mac OS X (или перезагрузка виртуальной машины Docker), которая не позволяет клиенту Docker подключиться к демону Docker.

Чтобы решить проблему, вы можете:

A) Переустановите Docker Toolbox с помощью официального установщика ( https://www.docker.com/products/docker-toolbox ) или просто

B) Выполните следующие команды в следующем порядке:

# First make sure that the virtual machine is running
docker-machine start default

# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default

# Finally, set env
eval "$(docker-machine env default)"

C) То же, что и (B), вы можете также скопировать и вставить следующую строку для запуска всех трех команд:

docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"

В случае возникновения следующей ошибки:

Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err     : exit status 255
output  :

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




Я перезагружаю Docker после его установки:

$ sudo service docker stop
$ sudo service docker start

И это работает.




Попробуйте изменить файл конфигурации Docker, docker или docker-network в /etc/sysconfig :

(... ~ v1.17)

файл docker :

OPTIONS= -H fd://

или (v1.18):

файл docker-network :

DOCKER_NETWORK_OPTIONS= -H unix:///var/run/docker.sock



Если регенерация сертификатов TLS не работает

docker-machine regenerate-certs default

Попробуйте перезагрузить машину докеров и установите переменную env:

docker-machine restart default
eval $(docker-machine env default)

Проверьте, работает ли машина:

docker-machine ls

или альтернативно

docker run hello-world

Это сработало для меня. Однако, если у вас все еще нет демона, на странице устранения неполадок Docker описывается процесс остановки, удаления и создания новой машины.




Linux

Последующие шаги для документации Linux показывают следующие шаги:

  1. Создайте группу докеров .
    sudo groupadd docker
  2. Добавьте пользователя в группу докеров .
    sudo usermod -aG docker $(whoami)
  3. Выйдите из системы и войдите в систему, чтобы обеспечить выполнение докеров с правильными разрешениями.
  4. Начните докер.
    sudo service docker start

Mac OS X

Как говорит Дейел Острако, необходимо добавить переменные окружения:

docker-machine start # Start virtual machine for docker
docker-machine env  # It's helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables

Команда docker-machine start выводит комментарии для руководства процессом.




  1. У меня тоже была такая же проблема. Проблема была в сокетах, выделенных для docker-daemon и docker-client.
  2. Во-первых, разрешение не было установлено для docker-client на docker.sock. Вы можете установить его, используя «sudo usermod -aG docker $ USER»
  3. Затем проверьте файл bash, в котором работает docker-client. Для меня это было на 0.0.0.0:2375, тогда как docker-daemon запускался в unix-сокете (он был установлен в файле конфигурации dockerd).
  4. Просто прокомментируйте bash-line, и все будет хорошо.
  5. Но если вы хотите, чтобы он работал на TCP-порт вместо unix-сокета, измените конфигурационный файл dockerd и установите его на 0.0.0.0.2375 и сохраните строку в bash как есть, если она присутствует или установлена ​​в 0.0.0.0: 2375.



Если вы получаете сообщение Can't connect to docker daemon. Is 'docker -d' running on this host? удается Can't connect to docker daemon. Is 'docker -d' running on this host? Can't connect to docker daemon. Is 'docker -d' running on this host? , вы можете проверить его docker version .

Если вы видите информацию, такую ​​как Docker Client, запущена. но Docker Server нет , очевидно, вам нужно запустить сервер Docker.

В CentOS вы можете использовать service для запуска или остановки сервера Docker.

$ sudo service docker stop
$ sudo service docker start

Затем, после ввода docker version , вы получите информацию о Docker Client и Docker Server , а демон Docker запущен.




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

sudo usermod -aG docker $USER

Затем выйдите из системы и войдите в систему.




У меня схожая проблема. Мне пришлось выйти из системы и снова войти в оболочку, потому что я только что установил Docker, и следующая команда не отображалась в моей среде.

export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc



Лучший способ узнать, почему Docker не работает, - это запустить демон вручную.

$ sudo service docker stop
$ ps aux | grep docker  # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d

Демон Docker записывается в STDOUT, поэтому он начнет выплевывать все, что он делает.

Вот моя проблема:

[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid

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

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




У меня была такая же проблема, что и на Amazon AWS .

Вот что я пытался:

  • Настройте docker-machine локально с уже существующим экземпляром AWS
  • Используемая общая настройка
  • Это как-то связано, но поскольку удаленный порт был закрыт, он не прошел
  • После этого демон Docker отказался запускать, но работает dockerd действительно работал ...

Он был протестирован на удаленной машине:

service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success

Я удалил /var/lib/docker и удалил все, но после переустановки не было никакого успеха. К сожалению, у меня нет журналов, хранящихся в результате сбоев, но docker.service просто отказался запускать.

Однако, что окончательно решило мою проблему, было в основном:

sudo usermod -aG docker $(whoami)



У меня была аналогичная проблема.

В моем случае решение заключалось в том, чтобы удалить устаревшую версию докера. Я предполагаю, что это вызвало некоторые конфликты.

На ubuntu:

sudo apt remove docker

решил проблему для меня




Обычно это происходит, когда вы не находитесь в группе docker . Вы можете добавить себя в группу docker :

sudo usermod -aG docker yourusername

или же

sudo usermod -aG docker $(whoami)

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

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




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

1) Создать группу Docker

sudo groupadd docker 

2) Заставьте пользователей принадлежать группе докеров, чтобы получить привилегии группы.

sudo usermod -aG docker $USER

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

env | grep DOCKER_HOST

Если он существует,

unset DOCKER_HOST

Тогда это должно работать:

docker run hello-world



Вы пытались отключить его и снова? :-)

У меня была такая же проблема после обновления до Docker 1.10.1 на моем Mac. Я сделал следующее:

На терминале быстрого запуска Docker

$ exit

$ exit

затем

убить по умолчанию

затем перезапустил терминал быстрого запуска Docker

Это решило мою проблему.




Если вы используете OS X с помощью инструмента Docker, следуйте этому примеру.

Перезапустите демон и настройте среду:

docker-machine restart

А потом

docker-machine env

В заключение,

eval $(docker-machine env)

Чтобы протестировать демон:

docker ps -a или docker-machine ls . В этом списке будут указаны все контейнеры.




Я столкнулся с этой проблемой, и я перезапустил Docker, используя следующие команды:

$ sudo service docker stop
$ sudo service docker start

Но я не решил свою проблему, потому что забыл выполнить мои команды Docker без sudo . Для тех, кто сталкивается с этой проблемой, попробуйте проверить это.

Пытаться

$ sudo docker info

вместо этого:

$ docker info



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

# Uninstall Docker from apt packages
$ sudo apt-get remove docker docker.io

# Remove it from the libraries just to be
# sure it's gone forever
$ sudo rm -rf /var/lib/docker/*

Теперь, если вы хотите упростить вещи и получить больше времени, вы можете запустить мой скрипт init с помощью параметра installDocker :

# Pull the init script from GitHub
$ wget https://github.com/dminca/dotfiles/blob/master/init

# Add rights to run the script
$ chmod 755 init

# Just run the script with the installDocker parameter
$ ./init installDocker

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




У меня была та же проблема: «Не удается подключиться к демону докеров». (за исключением того, что я не получил никаких ошибок «file not found» при попытке запустить сервер.)

«ps» показал, что «/ usr / bin / docker -d» все еще работает

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

...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid

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

sudo kill -9 <PID>

на процесс демона. Другой демон немедленно занял свое место, и этот новый теперь позволяет клиенту CLI подключиться:

$ sudo docker info
Containers: 0
Images: 0
Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support



Попробуйте это, чтобы создать значение по умолчанию.

docker-machine create default




linux docker