Dockerの問題のデバッグに問題があります。ホストであるマイコンピュータでは、イメージ内のapt
すべての//コマンドが中断され、その理由を理解できません。apt-get
apt-cache
debian:jessie
dockerがある他のマシンで実行する場合(例:)
docker run --rm debian:jessie apt list
これには数秒かかり、リストが表示されます。私のコンピュータは永遠に(> 30分)停止し、CPUコア全体を使用します。
この問題をデバッグする方法についてのアイデアはありますか?
私はまともな最新のハードウェアでFedora 35(x86_64)を使用しています。すでに私
- 別のコマンドを実行してみました。すべてCPUコアを占有して停止しました。少なくとも試してみました
apt update
が、、、もちろん覚えていないものもあります。apt upgrade
apt list
apt show apt
apt-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
これまでは問題ありませんでした。
答え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
ネットワークベースのファイアウォールルールを介してアクセスポリシーを制御する方が簡単であるため、インスタンスが構築されるとすぐに無効になります。ホストベースのルールよりはるかに多くです。