Docker Repository не имеет файла релиза при запуске обновления apt-get в Ubuntu

45

Я использую Ubuntu 16.10 и недавно установил Docker (v1.12.4) с помощью сборки Xenial, следуя инструкциям, найденным здесь. У меня не возникло проблем с созданием контейнеров, их автоматической перезагрузкой и т.д.

Однако теперь каждый раз, когда я запускаю apt-get update, я получаю следующее сообщение об ошибке:

W: The repository 'https://apt.dockerproject.org/repo ubuntu-xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch https://apt.dockerproject.org/repo/dists/ubuntu-xenial/main/binary-amd64/Packages
E: Some index files failed to download. They have been ignored, or old ones used instead.

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

Кто-нибудь сталкивался с этим раньше и исправил его? Если да, то что необходимо для решения этой проблемы?

  • 1
    Пожалуйста, посмотрите, помогает ли это - askubuntu.com/questions/768569/…
  • 0
    @Rao, к сожалению, это не решает проблему. Я по-прежнему получаю то же сообщение об ошибке после удаления ключа, записи списка источников, повторного запуска обновления apt-get и повторения шагов установки Docker.
Показать ещё 2 комментария
Теги:
docker
apt-get

9 ответов

57

В linux mint официальные инструкции не работали для меня. Мне пришлось перейти в /etc/apt/sources.list.d/additional-repositories.list и изменить serena на xenial.

  • 1
    Просто примечание, по какой-то причине для меня была строка докера с trusty а другая с serena . Может быть, я пытался пройти через этот же процесс некоторое время назад и забыл об этом. В любом случае мне пришлось удалить trusty строку, иначе она жаловалась на неразрешимые зависимости.
45

Для Linux Mint эта проблема фактически упоминается на веб-сайте Docker:

Примечание. Подкоманда lsb_release -cs ниже возвращает имя вашего дистрибутива Ubuntu, например, xenial. Иногда в таком дистрибутиве, как Linux Mint, вам может потребоваться заменить $ (lsb_release -cs) на ваш родительский дистрибутив Ubuntu. Например, если вы используете Linux Mint Rafaela, вы можете использовать trusty. amd64:

$ sudo add-apt-repository\"deb [arch = amd64] https://download.docker.com/linux/ubuntu\$ (lsb_release -cs)\
стабильный"

Команда lsb_release -cs дает репозиторий, для которого Docker не имеет подготовленного пакета - вы должны изменить его на xenial.

Правильная команда для Linux Mint 18, основанная на Ubuntu 16.04 Xenial:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   xenial \
   stable"
  • 0
    Команда, которую вы указали, такая же, как та, которая существует на сайте докера. Однако это не работает для меня на Ubuntu 16.04. Запись, сгенерированная в sources.list : deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable Но проблема остается той же. Я хотел бы, чтобы кто-то мог объяснить, почему он не может найти Release внутри https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/ . Грустно: после стольких лет использования Ubuntu я все еще не могу понять, как все работает с путями в репозитории.
  • 0
    Это решило мои проблемы, заставив вещи перейти на новый дистрибутив WLinux.
12

Пляж Эллиот правильный. Спасибо, Эллиот.

Вот код из моей сути.

sudo apt-get remove docker docker-engine docker.io

sudo apt-get update

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

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
xenial \
stable"

sudo apt-get update

sudo apt-get install docker-ce

sudo docker run hello-world
  • 1
    Тщательно выполняйте эти команды, если не запускаете xenial. Эта команда будет безопаснее add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 0
    В некоторых случаях (например, Mint) lsb_release -cs возвращает tara которой нет поддерживаемой версии, так что переопределение xenial как показано (или верное), является полезным обходным xenial .
Показать ещё 1 комментарий
8

Я увидел интересный пост от Ikraider, который решил мою проблему: https://github.com/docker/docker/issues/22599

Ошибки сайта неверны, вот что работает в 16.04:

curl -s https://yum.dockerproject.org/gpg | sudo apt-key add
apt-key fingerprint 58118E89F3A912897C070ADBF76221572C52609D
sudo add-apt-repository "deb https://apt.dockerproject.org/repo ubuntu-$(lsb_release -cs) main"
sudo apt-get update
sudo apt-get install docker-engine=1.13.0-0~ubuntu-xenial
5

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

  • Удалите Docker (это не приведет к удалению изображений, контейнеров, томов или настраиваемые файлы конфигурации):

    sudo apt-get очиститель-докер-двигатель

  • Удалите ключ Docker apt:

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  • Удалите файл docker.list:

    sudo rm/etc/apt/sources.list.d/docker.list

  • Вручную удалять файлы apt cache:

    sudo rm /var/lib/apt/lists/apt.dockerproject.org_repo_dists_ubuntu-xenial _ *

  • Удалить apt-transport-https и ca-сертификаты:

    sudo apt-get очистить apt-transport-https ca-certificates

  • Очистите apt и выполните команду autoremove:

    sudo apt-get clean && & sudo apt-get autoremove

  • Перезагрузите Ubuntu:

    перезагрузка sudo

  • Запустите apt-get update:

    Обновление sudo apt-get

  • Установите apt-transport-https и ca-сертификаты еще раз:

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

  • Добавьте ключ apt:

    sudo apt-key adv \        --keyserver hkp://ha.pool.sks-keyservers.net: 80 \        --recv-ключи 58118E89F3A912897C070ADBF76221572C52609D

  • Добавьте файл docker.list еще раз:

    echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee/etc/apt/sources.list.d/docker.list

  • Запустите apt-get update:

    Обновление sudo apt-get

  • Установите Docker:

    sudo apt-get install docker-engine

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

Обновление 7/6/2017

Похоже, что более новые версии Docker используют другой процесс установки, который должен устранить многие из этих проблем. Обязательно проверьте https://docs.docker.com/engine/installation/linux/ubuntu/.

  • 0
    После запуска перезагрузки мой экран входа в систему отображается в Linux Mint
  • 0
    работает: sudo apt-get purge apt-transport-https ca-Certificates - ужасная идея, думаю, я просто облажался с моей ОС: C
Показать ещё 5 комментариев
1

У меня тоже была похожая проблема. Кто-то может найти то, что сработало для меня, полезно.

Машина работает под управлением Ubuntu 16.04 и имеет Docker CE. Просматривая ответы и ссылки, представленные здесь, особенно по ссылке с веб-сайта Docker, предоставленной Elliot Beach, я открыл свой /etc/apt/sources.list и проверил его.

Этот файл имел как deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stable и deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Так как второй был тем, что было нужно, я просто закомментировал первый, сохранил документ, и теперь проблема устранена. В качестве теста я вернулся в тот же документ, удалил знак комментария и снова запустил sudo apt-get update. Проблема вернулась, когда я это сделал.

Напомним: у меня не только было имя моего родительского дистрибутива Ubuntu, как указано на веб-сайте Docker, но я также закомментировал строку, в которой все еще содержится (lsb_release -cs).

  • 0
    В Ubuntu 18.10 я закомментировал эту строку: # deb [arch = amd64] download.docker.com/linux/ubuntu космическая стабильная
1

У меня все еще та же проблема. Ни один из приведенных выше ответов, кажется, не решает проблему. У меня Ubuntu 16.04, и я следую инструкциям, описанным в https://docs.docker.com/install/linux/docker-ce/ubuntu/

Я подозреваю, что это связано с ошибкой apt-get относительно https. Информация, которую печатает apt-get, вводит в заблуждение.

Я думаю, что не Failed to fetch.. также может быть переведено как: problem accessing resource from within an https connection

Как я пришел к такому выводу:

Прежде всего я нахожусь за корпоративным прокси, поэтому я установил следующую конфигурацию:

/etc/apt/apt.conf

Acquire::http::proxy "http://squidproxy:8080/";
Acquire::https::proxy "http://squidproxy:8080/";
Acquire::ftp::proxy "ftp://squidproxy:8080/";

Acquire::https::CaInfo     "/etc/ssl/certs/ca-certificates.pem";

/etc/apt/apt.conf.d/99proxy

Acquire::http::Proxy {
    localhost DIRECT;
    localhost:9020 DIRECT;
    localhost:9021 DIRECT;
};

Я выполнил следующие тесты с различными записями в sources.list

тестовая запись 1:

deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable

sudo apt-get update

W: The repository 'https://download.docker.com/linux/ubuntu xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration     details.
E: Failed to fetch     https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/Packages  
E: Some index files failed to download. They have been ignored, or old ones used instead.

недостаточность

тестовая запись 2:

deb [arch=amd64] http://localhost:9020/linux/ubuntu xenial stable

/etc/apache2/sites-enabled/apt-proxy.conf

# http to https reverse proxy configuration.
Listen 9020
<VirtualHost *:9020>
SSLProxyEngine On
# pass from squid proxy
ProxyRemote https://download.docker.com/ http://squidproxy:8080
ProxyPass / https://download.docker.com/
ProxyPassReverse / https://download.docker.com/
ErrorLog ${APACHE_LOG_DIR}/apt-proxy-error.log
CustomLog ${APACHE_LOG_DIR}/apt-proxy-access.log combined
</VirtualHost>

sudo apt-get update

Hit:1 ..
Hit:2 ..
  ...                                                              
Hit:7 http://localhost:9020/linux/ubuntu xenial InRelease                
Get:8 ...
Fetched 323 kB in 0s (419 kB/s)
Reading package lists... Done

успех

тестовая запись 3:

deb [arch=amd64] https://localhost:9021/linux/ubuntu xenial stable

/etc/apache2/sites-enabled/apt-proxy.conf

# https to https revere proxy
Listen 9021
<VirtualHost *:9021>
# serve on https
SSLEngine on
SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLProxyEngine On
# pass from squid proxy
ProxyRemote https://download.docker.com/ http://squidproxy:8080
ProxyPass / https://download.docker.com/
ProxyPassReverse / https://download.docker.com/
ErrorLog ${APACHE_LOG_DIR}/apt-proxy-error.log
CustomLog ${APACHE_LOG_DIR}/apt-proxy-access.log combined
</VirtualHost>

sudo apt-get update

W: The repository 'https://localhost:9021/linux/ubuntu xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch https://localhost:9021/linux/ubuntu/dists/xenial/stable/binary-amd64/Packages  
E: Some index files failed to download. They have been ignored, or old ones used instead.

недостаточность


В вышеупомянутых случаях URL, который apt-get Failed to fetch а также файл Release, были фактически доступны из browser/wget/curl с использованием той же конфигурации прокси.
Тот факт, что apt-get работает только с URL-адресом обратного прокси-сервера http, подразумевает, что существует некоторая проблема с доступом к ресурсам через соединение https.
Я не знаю, что это за проблема, но apt-get должен показывать более информативное сообщение (apt еще менее многословно).

Примечание: случай перетаскивания проводов 1 показал, что прокси-сервер CONNECT был успешным, и RST не был отправлен, но, конечно, файлы не могли быть прочитаны.

0

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

  • sudo vi/etc/apt/sources.list

Затем удалите/прокомментируйте любую (deb [arch=amd64] https://download.docker.com/linux/ubuntu/xenial stable) такую запись в последних строках файла.

Затем в терминале выполните эту команду:

  • sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu/bionic stable"

  • sudo apt-get update

Это сработало в моем случае.

-2

Лучшая проверка для этой проблемы: (Если вы используете прокси-сервер), (протестировано на Ubuntu 18.04), (будет работать и на других Ubuntu), (в основном ошибка в: https_proxy = "http://192.168.0.251:808/)

  1. Проверьте эти файлы:

    #sudo cat /etc/environment :
    http_proxy="http://192.168.0.251:808/"
    https_proxy="http://192.168.0.251:808/"
    ftp_proxy="ftp://192.168.0.251:808/"
    socks_proxy="socks://192.168.0.251:808/"
    #sudo cat /etc/apt/apt.conf :
    Acquire::http::proxy "http://192.168.0.251:808/";
    Acquire::https::proxy "http://192.168.0.251:808/";
    Acquire::ftp::proxy "ftp://192.168.0.251:808/";
    Acquire::socks::proxy "socks://192.168.0.251:808/";
    
  2. Добавить Docker стабильного репо

    #sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 
    
  3. Запустите apt-get update:

    #sudo apt-get update
    
  4. Проверьте докер CE

    #apt-cache policy docker-ce
    
  5. установить докер

    #sudo apt-get install docker-ce
    

Ещё вопросы

Сообщество Overcoder
Наверх
Меню