Ответ 1
В linux mint официальные инструкции не работали для меня. Мне пришлось перейти в /etc/apt/sources.list.d/additional-repositories.list
и изменить serena
на xenial
.
Я использую 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.
Я попытался исправить эту проблему, следуя рекомендациям здесь и, похоже, не может решить эту проблему.
Кто-нибудь сталкивался с этим раньше и исправил его? Если да, то что необходимо для решения этой проблемы?
В linux mint официальные инструкции не работали для меня. Мне пришлось перейти в /etc/apt/sources.list.d/additional-repositories.list
и изменить serena
на xenial
.
Для 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"
Пляж Эллиот правильный. Спасибо, Эллиот.
Вот код из моей сути.
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
Я увидел интересный пост от 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
Как предлагается в официальном докерском документе также. Попробуйте запустить это:
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
Это сработало в моем случае.
Ниже приведен список шагов, используемых для решения проблемы:
Удалить Docker (это не удалит изображения, контейнеры, тома или пользовательские файлы конфигурации):
sudo apt-get purge docker-engine
Удалите ключ Docker apt:
sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D
Удалите файл docker.list:
sudo rm/etc/apt/sources.list.d/docker.list
Удалите файлы кэша apt вручную:
судо рм /var/lib/apt/lists/apt.dockerproject.org_repo_dists_ubuntu-xenial_*
Удалите apt-transport-https и ca-Certificates:
sudo apt-get purge apt-transport-https ca-certificates
Очистите и выполните автоматическое удаление:
sudo apt-get clean && sudo apt-get autoremove
Перезагрузите Ubuntu:
перезагрузка sudo
Запустите apt-get update:
sudo apt-get update
Установите 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-keys 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 update
Установите Docker:
sudo apt-get install docker-engine
Конечно, есть много переменных, и ваши результаты могут отличаться. Тем не менее, эти шаги охватывают как можно больше областей, чтобы убрать потенциальные проблемные места, чтобы вероятность успеха была выше.
Обновление от 6.07.2017
Похоже, что более новые версии Docker используют другой процесс установки, который должен устранить многие из этих проблем. Обязательно ознакомьтесь с https://docs.docker.com/engine/installation/linux/ubuntu/.
У меня тоже была похожая проблема. Кто-то может найти то, что сработало для меня, полезно.
Машина работает под управлением 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).
Редактирование файла /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
У меня все еще та же проблема. Ни один из приведенных выше ответов, кажется, не решает проблему. У меня 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
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.
недостаточность
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
успех
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 не был отправлен, но, конечно, файлы не могли быть прочитаны.
Лучшая проверка для этой проблемы: (Если вы используете прокси-сервер), (протестировано на Ubuntu 18.04), (будет работать и на других Ubuntu), (в основном ошибка в: https_proxy = "http://192.168.0.251:808/)
Проверьте эти файлы:
#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/";
Добавить Docker стабильного репо
#sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Запустите apt-get update:
#sudo apt-get update
Проверьте докер CE
#apt-cache policy docker-ce
установить докер
#sudo apt-get install docker-ce