Ubuntu 16.10を使用しており、Xenialビルドを使用してDocker(v1.12.4)を最近インストールしました here の指示に従ってインストールしました。コンテナの作成、コンテナの自動再起動などの問題は発生していません。
ただし、現在、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.
私は here のアドバイスに従って問題を解決しようとしましたが、この問題を解決できないようです。
誰もこれに遭遇して修正しましたか?もしそうなら、これを解決するために何が必要ですか?
Linuxミントでは、公式の指示はうまくいきませんでした。 /etc/apt/sources.list.d/additional-repositories.list
に移動し、serena
をxenial
に変更する必要がありました。
Linux Mintの場合、この問題は実際には Docker Webサイト で参照されています:
注:以下のlsb_release -csサブコマンドは、xenialなどのUbuntuディストリビューションの名前を返します。 Linux Mintのようなディストリビューションでは、$(lsb_release -cs)を親Ubuntuディストリビューションに変更しなければならない場合があります。たとえば、Linux Mint Rafaelaを使用している場合、trustyを使用できます。 AMD64:
$ Sudo add-apt-repository\"deb [Arch = AMD64] https://download.docker.com/linux/ubunt \$(lsb_release -cs)\
安定」
lsb_release -cs
コマンドは、Dockerに準備されたパッケージがないリポジトリを提供します-xenialに変更する必要があります。
buntu 16.04 Xenialに基づくLinux Mint 18 の正しいコマンドは
Sudo add-apt-repository "deb [Arch=AMD64] https://download.docker.com/linux/ubuntu \
xenial \
stable"
エリオットビーチは正しいです。エリオットに感謝します。
ここに私の Gist からのコードがあります。
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キャッシュファイルを手動で削除します。
Sudo rm /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
Aptをクリーンアップして自動削除を実行します。
須藤apt-get clean &&須藤apt-get autoremove
Ubuntuを再起動します。
須藤リブート
Apt-get updateを実行します。
須藤apt-getアップデート
Apt-transport-httpsとca-certificatesを再度インストールします。
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" |須藤ティー/etc/apt/sources.list.d/docker.list
Apt-get updateを実行します。
須藤apt-getアップデート
Dockerをインストールします。
Sudo apt-get install docker-engine
確かに、多くの変数があり、結果は異なる場合があります。ただし、これらの手順は可能な限り多くの領域をカバーし、潜在的な問題点を確実にスクラブして、成功の可能性を高めます。
2017年7月6日更新
Dockerの新しいバージョンは、これらの問題の多くを解消する別のインストールプロセスを使用しているようです。必ずチェックアウトしてください https://docs.docker.com/engine/installation/linux/ubuntu/ 。
私はまだ同じ問題を抱えています。上記の答えはどれもそれを解決するようには見えません。 ubuntu 16.04があり、 https://docs.docker.com/install/linux/docker-ce/ubuntu/ で説明されている手順に従います
Httpsに関するapt-get
バグに関連していると思われます。 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.
失敗
上記の場合、Failed to fetch
およびRelease
ファイルをapt-getするURLは、同じプロキシ構成を使用してbrowser
/wget
/curl
から実際にアクセスできました。apt-get
はhttpリバースプロキシURLでのみ機能したという事実は、いくつかのhttps接続内からリソースへのアクセスの問題があることを意味します。
この問題が何なのかわかりませんが、apt-get
はより有益なメッセージを表示するはずです(apt
はさらに冗長です)。
注:wiresharkingケース1は、プロキシ
CONNECT
が成功し、RSTが送信されなかったことを示しましたが、もちろんファイルを読み取ることができませんでした。
同様の問題もありました。誰かが私にとって役に立つものを見つけるかもしれません。
マシンはUbuntu 16.04を実行しており、Docker CEを搭載しています。ここで提供される回答とリンク、特にElliot Beachが提供するDocker Webサイトからのリンクを調べた後、/ 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
の両方が含まれていました。
2番目のものが必要なものだったので、最初のものをコメントアウトし、ドキュメントを保存しただけで、問題は修正されました。テストとして、同じドキュメントに戻り、コメント記号を削除して、もう一度Sudo apt-get update
を実行しました。私がそれをしたときに問題が返されました。
要約すると、Docker Webサイトに記載されているとおり、Ubuntuの親ディストリビューション名があっただけでなく、(lsb_release -cs)がまだ含まれている行もコメントアウトされました。