2014-10-01 3 views
26

использовали Docker успешно в течение нескольких недель, но сегодня, когда я следовал набор инструкций, который предложил добавить следующие две строки в файл конфигурации Docker на /etc/init/docker.conf:Начиная Docker в Daemon на Ubuntu

limit memlock unlimited unlimited 
limit nofile 262144 

Затем он предложил перезапустить Docker с помощью sudo /etc/init.d/docker restart. Когда я сделал это под Ubuntu 14.04 она доложила, что:

  • Docker управляется с помощью выскочки, попробуйте использовать перезапуск службы Docker

Я попытался sudo service docker restart, к которому он сообщил:

остановка: неизвестная должность: докер

старт: U nknown job: docker

Теперь я застрял с демоном докеров, который не работает! Я попытался перезагрузки, но это все еще не работает, а когда запустить что-то же просто, как sudo docker version я получаю:

Client version: 1.2.0 
Client API version: 1.14 
Go version (client): go1.3.1 
Git commit (client): fa7b24f 
OS/Arch (client): linux/amd64 
2014/10/01 09:57:45 Get http:///var/run/docker.sock/v1.14/version: dial unix /var/run/docker.sock: no such file or directory 

Для устранения Я попытался начать Docker демона из командной строки с:

sudo docker -d 

И в другом терминале window Теперь я могу нормально запускать Docker. Это здорово, но как я могу снова запустить его? Также я замечаю, что у меня есть два файла конфигурации докеров:

/etc/init/docker.conf 
/etc/init/docker.io.conf 

Они выглядят как DUP. Являются ли они излишними? На какой я должен смотреть? Мне нужны оба?

Я также заметил, что это двуличие появляется, когда я запускаю sudo service --status-all |grep docker Я получаю как docker, так и docker.io в качестве перечисленных служб. Выращенный.

+0

Обратите внимание, что я действительно не понимаю механика ** выскочка **, и я подозреваю, что это скорее проблема с выскочкой, чем проблема докера. – ken

ответ

23

Существует множество популярных репозиториев, предлагающих пакеты докеров для Ubuntu. Пакет docker.io является (скорее всего) из репозитория Ubuntu. Другим популярным является http://get.docker.io/ubuntu, который предлагает пакет lxc-docker (я запускаю последнее, потому что оно быстрее отправляет обновления). Убедитесь, что установлен только один пакет. Не совсем уверен, что удаление пакетов очищается должным образом. Если sudo service docker restart все еще не работает, вам, возможно, придется вручную очистить его в/etc /.

+1

теперь, когда вы это говорите, я помню, что я тоже «быстро отслеживал» на Docker, что почти наверняка, почему у меня две версии. К сожалению, я никогда не записывал, что я сделал, поэтому, я думаю, я переработаю его сегодня утром. – ken

+1

Я также попробую 'sudo service docker restart' снова, но я не ожидаю никаких изменений ранее. Когда вы говорите «очистить вручную в'/etc', вы могли бы дать представление о том, что вы имеете в виду? Я подозреваю, что мне нужно будет туда, но его область, о которой я не знаю достаточно. – ken

+0

BTW,/etc/apt/sources.list.d/'У меня есть файл« docker.list »и« docker.list.save », которые указывают на' http: // get.docker.io/ubuntu'. эта загадка решена. Я не знаю функции файла «docker.list.save», но другие файлы в этом каталоге также, похоже, имеют этот файл sidecar, поэтому я предполагаю, что это нормально? – ken

6

Эта проблема действительно стоила мне нескольких часов.

Моя система Ubuntu 14.04, я установил докер на sudo apt-get install docker и набрал некоторые другие команды, которые вызвали проблему.

  1. I google "unknown job: docker.io", ответы не вступили в силу.

  2. Я искал причины «неизвестной работы» в /etc/init.d/, не нашел правильного ответа.

  3. Я искал способ отладить скрипт в /etc/init.d/, не нашел правильного ответа.

  4. Затем я сделал чистый:

    1. sudo apt-get remove docker.io
    2. гт каждый подозрительный файл на find/-name "*docker*", такие как /etc/init/docker.io.conf, /etc/init.d/docker.io.
  5. Следуйте за последним официальным документом: https://docs.docker.com/installation/, существует много устаревшей документации, которая может вводить в заблуждение.

И наконец, проблема решена.

Примечание. Если вы находитесь в Китае, из-за GFW вам может потребоваться установить https_proxy для установки докера с https://get.docker.com/.

12

У меня была та же проблема 14.04 с докера 1.9.1.

Команда выскочка сервис сделал работу, когда я использовал Sudo, хотя я был корень:

$ whoami 
root 
$ service docker status 
status: Unbekannter Auftrag: docker 

$ sudo service docker status 
docker start/running, process 7394 

кажется, зависит от переменных окружения.

service docker status работы, когда становится корневым с su -, но не тогда, когда только с помощью su:

$ su 
Password: 
$ service docker status 
status: unknown job: docker 
$ exit 
$ su - 
Password: 
$ service docker status 
docker start/running, process 2342 
+0

В этом разница между 'su-root' и' su root'. Если вы вошли в систему под именем 'su root',' sudo service docker status' - единственный способ пойти. Если вы вошли в систему под именем 'su-root', «статус докеры службы» должен j работа ust! – VanagaS

1

У меня была такая же проблема на убунту 14.04 Вот решение

sudo service docker start 

или вы можете перечислить изображения

docker images 
3

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

Вот шаги, чтобы сделать это:

Добавить группу Docker, если он уже не существует:

sudo groupadd docker 

Добавить подключенный пользователь ${USER} к группе Докер. Изменение имени пользователя, чтобы соответствовать вашему предпочтительную пользователя:

sudo gpasswd -a ${USER} docker 

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

sudo service docker restart 

Если вы на Ubuntu 14.04-15.10 * использовать docker.io вместо:

sudo service docker.io restart 

(Если вы находитесь на Ubuntu 16.04 услуга называется «докер» просто)

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

0

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

sudo docker daemon -D 

и выход является таймаут, это может быть исправлено под Ubuntu со следующим выполнением:

$ ps axf | grep docker | grep -v grep | awk '{print "kill -9 " $1}' | sudo sh 

(Источник: https://github.com/moby/moby/issues/22507#issuecomment-219601289)

0

Я была такая же проблема, и это было вызвано линией для небезопасного реестра: /etc/default/docker

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