`docker run --rm debian:jessie apt update` は Fedora ホストでは動作しません。

`docker run --rm debian:jessie apt update` は Fedora ホストでは動作しません。

Dockerの問題のデバッグに問題があります。ホストであるマイコンピュータでは、イメージ内のaptすべての//コマンドが中断され、その理由を理解できません。apt-getapt-cachedebian:jessie

dockerがある他のマシンで実行する場合(例:)

docker run --rm debian:jessie apt list

これには数秒かかり、リストが表示されます。私のコンピュータは永遠に(> 30分)停止し、CPUコア全体を使用します。

この問題をデバッグする方法についてのアイデアはありますか?

私はまともな最新のハードウェアでFedora 35(x86_64)を使用しています。すでに私

  • 別のコマンドを実行してみました。すべてCPUコアを占有して停止しました。少なくとも試してみましたapt updateが、、、もちろん覚えていないものもあります。apt upgradeapt listapt show aptapt-cache showpkg apt
  • setenforce 0ホストシステムでselinuxを無効にしようとしましたが、うまくいきませんでした。
  • dockerパラメータでネットワークをキャンセルしようとしましたが、うまくいきません--network noneでした。
  • Fedoraホストシステムを更新しましたが、うまくいきませんでした。
  • docker-ceのバージョンが最新の安定版であることを確認してください。
  • 試しましたdocker run --rm debian:latest apt list(例:最新のDebian)。動作しますが、以前のバージョンが必要です(最新バージョンではないJessie)。
  • Fedoraファイアウォールを停止しsystemctl stop firewalld.service(@rubynorailsに感謝)、Dockerデーモンを再起動してみましたが、うまくいきませんsystemctl restart dockerでした。

ここでどのように行くかについてのアイデアはありますか?

答え1

数時間の試行錯誤の後、別のホストで実行されている別のイメージを介して正しい方向に進むことができました。 fedora[1][2]の基本ulimitに問題があるようです。

以下はうまくいきます。

docker run --rm --ulimit nofile=10000:10000 -ti debian:jessie apt list

すべてのコンテナ/ドッカービルドにパラメータを追加しましたが、--ulimitこれまでは問題ありませんでした。

[1]https://github.com/coreos/fedora-coreos-docs/issues/103

[2]https://bugzilla.redhat.com/show_bug.cgi?id=1715254

答え2

以下に基づいて編集@jsbillings以下のコメント - 参考にしてください。@フェルハーこの特定の回答で問題は解決されませんでしたが、同じ問題の説明を使用しているユーザーに適用できるというフィードバックDockerのバージョンがv20.0未満です。

元の答え:

firewalld私の記憶によると、DockerはRHELシステムでデフォルトで有効になっており、正しく動作しませんでした。 Ubuntuシステムのように動作させるには(デフォルトではufw無効になっています)、次を停止しますfirewalld

sudo systemctl stop firewalld

...そして[オプション]後でこれが起こらないように無効にします。

sudo systemctl disable firewalld

dockerデーモンを再起動する必要があるかもしれません。

sudo systemctl restart dockerまたはsystemctl restart docker-ce

これが最善のセキュリティ方法であるとは言いませんが、個人的には企業環境では、firewalldネットワークベースのファイアウォールルールを介してアクセスポリシーを制御する方が簡単であるため、インスタンスが構築されるとすぐに無効になります。ホストベースのルールよりはるかに多くです。

関連情報