Не удается установить Docker на Debian Jessie

Несмотря на попытку использовать как официальный механизм установки с использованием нового репозитория apt, описанного здесь, так и а также маршрут curl -fsSL https://get.docker.com/ | sh, я все еще получаю E: Unable to locate package docker-engine от APT, когда пытаюсь apt-get install docker-engine.

Мои версии:

$ uname -a
Linux blah 4.5.5-x86_64-linode69 #3 SMP Fri May 20 15:25:13 EDT 2016 x86_64 GNU/Linux


$ lsb_release -c
Codename:       jessie

$ cat /etc/debian_version
8.5

$ cat /etc/apt/sources.list
deb http://ftp.uk.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.uk.debian.org/debian/ stable main
deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main
deb http://http.debian.net/debian wheezy-backports main

Единственный файл в моем /etc/apt/sources.list.d - это docker.list, который содержит:

deb https://apt.dockerproject.org/repo debian-jessie main

apt-cache policy docker-engine тоже не находит:

apt-cache policy docker-engine
N: Unable to locate package docker-engine

Как я могу это решить?


person Alex    schedule 02.08.2016    source источник
comment
Вы уже выполняли обновление apt-get раньше?   -  person lvthillo    schedule 02.08.2016
comment
Ага, и после. Тоже несколько раз.   -  person Alex    schedule 02.08.2016
comment
Вы используете 64-битную версию Debian 8.0 Jessie? + если да: каково содержимое /etc/apt/sources.list.d/backports.list   -  person lvthillo    schedule 02.08.2016
comment
backports.list не существует в этом месте. Как узнать, какая версия архитектуры Debian у меня установлена? Я подозреваю, что это может быть 32-битная память...   -  person Alex    schedule 03.08.2016
comment
Я вижу x86_64 как вывод вашего uname -r, поэтому вы используете 64-битную версию, что нормально и поддерживается докером. Если у вас нет этого файла, вы должны создать его вручную. Проверить ответ   -  person lvthillo    schedule 03.08.2016


Ответы (4)


Отредактируйте свой sources.list и измените следующую строку:

deb http://http.debian.net/debian wheezy-backports main

to

deb http://ftp.debian.org/debian jessie-backports main

Обновите и установите docker:

apt-get update
apt-get install docker.io

Изменить

Чтобы установить конкретную версию docker-engine, загрузите пакет .deb с здесь, например, последним является docker-engine_1.9.1-0~jessie_amd64.deb:

wget https://apt.dockerproject.org/repo/pool/main/d/docker-engine/docker-engine_1.9.1-0~jessie_amd64.deb
sudo apt-get update
dpkg -i docker-engine_1.9.1-0~jessie_amd64.deb

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

apt-get -f install
dpkg -i docker-engine_1.9.1-0~jessie_amd64.deb
person GAD3R    schedule 03.08.2016
comment
Это не последняя версия докера. Почему я не могу установить docker-engine? docker.io установлена ​​таким образом в версии 1.6.2, это действительно старый! - person Alex; 03.08.2016
comment
Я думаю, что мы нашли мою проблему: он утверждает, что неправильная архитектура, так как система i386, но amd64 deb (несмотря на то, что uname сообщает x86_64) ... может быть, поэтому он не загружается через apt? - person Alex; 03.08.2016
comment
Docker поддерживается только 64-битными системами, как описано здесь: docs.docker.com/ двигатель/установка/linux/debian - person GAD3R; 03.08.2016
comment
Это объясняет, почему он не загружается через apt (независимо от выражения арки в строке deb в docker.list) — i386 недоступен. Uname сообщает о x86_64, но IIRC Я изначально установил Debian 32bit, поскольку у виртуальной машины было только 3 ГБ ОЗУ ... - person Alex; 03.08.2016

Ваша архитектура dpkg, вероятно, использует 32bit. Вы можете проверить это, используя:

dpkg --print-architecture

Исправьте это, добавив amd64 в качестве внешней архитектуры:

dpkg --add-architecture amd64
dpkg --print-foreign-architectures

Обновите списки пакетов и проверьте наличие docker-engine:

apt-get update
apt-cache policy docker-engine

Источник: https://wiki.debian.org/Multiarch/HOWTO

person Mark Hoek    schedule 13.01.2017

Войти как пользователь root

$ sudo su

Создайте этот файл, если он не существует:

# vi /etc/apt/sources.list.d/backports.list

Добавьте это как содержимое вашего backports.list

 deb http://http.debian.net/debian jessie-backports main

Теперь выполните обновление apt-get

# apt-get update

Установите сертификаты ЦС

 # apt-get install apt-transport-https ca-certificates

Добавьте новый ключ GPG

# apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

Теперь откройте /etc/apt/sources.list.d/docker.list (или создайте, если его нет)

# vi /etc/apt/sources.list.d/docker.list

Добавить в качестве контента:

deb https://apt.dockerproject.org/repo debian-jessie main

Выполните еще раз обновление:

# apt-get update

Убедитесь, что APT загружается из правильного репозитория.

# apt-cache policy docker-engine

Обновить снова

# sudo apt-get update

Установите Докер:

# sudo apt-get install docker-engine

Запустите демон докера.

# sudo service docker start

Убедитесь, что докер установлен правильно.

# sudo docker run hello-world
person lvthillo    schedule 03.08.2016
comment
Добавлены бэкпорты, но docker-engine по-прежнему не может быть найден. - person Alex; 03.08.2016
comment
вы выполнили каждый шаг, также с сертификатами - person lvthillo; 03.08.2016
comment
Ага. Сертификаты уже были установлены (даже до того, как я сделал это из официальных инструкций по установке Docker). Большая часть того, что вы рекомендуете здесь, - это то, что делает установка докера, за исключением вещей jessie-backports. Неудачно :( - person Alex; 03.08.2016
comment
Я бы попытался переустановить/переделать сертификаты. - person lvthillo; 03.08.2016
comment
Прочистил apt-transport-https и ca-certificates, затем сделал apt-get update и apt-cache policy docker-engine. Нет кости :( Я заметил, что у меня есть wheezy-backports в моем apt sources.list. Я прокомментировал это, apt-get update, не повезло. Затем я понял, что загружаю i386 арку, когда делаю apt-get update ... Может ли это быть проблемой? Я добавил [arch=i386] в файл docker.list, но это не помогло. - person Alex; 03.08.2016

Привет, ребята, я столкнулся с той же проблемой и недавно нашел скрипт, автоматизирующий процесс установки докера в Debian 8. Вы можете увидеть фрагмент здесь (https://gist.github.com/frgomes/a6f889583860f5b330c06c8b46fa0f42). Кредит принадлежит создателю оригинального сценария.

Я добавляю это в строке 4, чтобы удалить старые версии Docker, если они существовали:

sudo apt-get remove docker docker-engine 

и несколько строк в строке 7:

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y

Затем как суперпользователь:

# chmod +x ./install-docker.sh
# sudo ./install-docker.sh

И вы получаете последний докер вместо версии 1.5-1:

# docker --version
Docker version 17.05.0-ce, build 89658be
person geomars    schedule 10.05.2017