Я использую 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
.
trusty
а другая с serena
. Может быть, я пытался пройти через этот же процесс некоторое время назад и забыл об этом. В любом случае мне пришлось удалить trusty
строку, иначе она жаловалась на неразрешимые зависимости.
Для 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"
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 я все еще не могу понять, как все работает с путями в репозитории.
Пляж Эллиот правильный. Спасибо, Эллиот.
Вот код из моей сути.
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
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
lsb_release -cs
возвращает tara
которой нет поддерживаемой версии, так что переопределение xenial
как показано (или верное), является полезным обходным xenial
.
Я увидел интересный пост от 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
Ниже приведен список шагов, используемых для решения проблемы:
Удалите 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/.
У меня тоже была похожая проблема. Кто-то может найти то, что сработало для меня, полезно.
Машина работает под управлением 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).
У меня все еще та же проблема. Ни один из приведенных выше ответов, кажется, не решает проблему. У меня 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 не был отправлен, но, конечно, файлы не могли быть прочитаны.
Как предлагается в официальном докерском документе также. Попробуйте запустить это:
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
Это сработало в моем случае.
Лучшая проверка для этой проблемы: (Если вы используете прокси-сервер), (протестировано на 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