Подтвердить что ты не робот

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

Я использую 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.

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

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

4b9b3361

Ответ 1

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

Ответ 2

Для 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"

Ответ 3

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

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

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

Ответ 4

Я увидел интересный пост от 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

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

  • 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

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

Ответ 6

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

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

    sudo apt-get purge docker-engine

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

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

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

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

  4. Удалите файлы кэша apt вручную:

    судо рм /var/lib/apt/lists/apt.dockerproject.org_repo_dists_ubuntu-xenial_*

  5. Удалите apt-transport-https и ca-Certificates:

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

  6. Очистите и выполните автоматическое удаление:

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

  7. Перезагрузите Ubuntu:

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

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

    sudo apt-get update

  9. Установите apt-transport-https и ca-сертификаты снова:

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

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

    sudo apt-key adv \        --keyserver hkp://ha.pool.sks-keyservers.net: 80 \        --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

  11. Снова добавьте файл docker.list:

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

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

    sudo apt-get update

  13. Установите Docker:

    sudo apt-get install docker-engine

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

Обновление от 6.07.2017

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

Ответ 7

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

Машина работает под управлением 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).

Ответ 8

Редактирование файла /etc/apt/sources.list.d/additional-repositories.list и добавление deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable  работал для меня, этот пост был очень полезным https://github.com/typora/typora-issues/issues/2065

Ответ 9

У меня все еще та же проблема. Ни один из приведенных выше ответов, кажется, не решает проблему. У меня 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 не был отправлен, но, конечно, файлы не могли быть прочитаны.

Ответ 10

Лучшая проверка для этой проблемы: (Если вы используете прокси-сервер), (протестировано на 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