私はMacにいます。 Dockerサンプルを実行しようとするこのドキュメントに従ってください: https://docs.docker.com/docker-for-mac/ これは私のコマンドです:
docker run -d -p 80:80 --name webserver nginx
しかし、私はこのエラーを受け取っています:
docker: Error response from daemon: driver failed programming external connectivity on endpoint webserver (bd57efb73c738e3b271db180ffbee0a56cae86c8193242fbc02ea805101df21e): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE).
助けが必要。
エラーメッセージのEADDRINUSE
は、ポート80がドッカーVMで使用されているか、ラップトップで直接使用されていることを示しています。そのポートで実行されているものを停止するか、Dockerコマンドで使用されるポートを変更できます。外部ポート8080に変更するには、次を使用します。
docker run -d -p 8080:80 --name webserver nginx
Dockerを再起動してください。それは通常私のために動作します。
コンテナの1つで同じ問題が発生しました。私はすべてを試しましたが、何も機能しなかったときに、次のことを試し、成功してコンテナを再び起動しました
- Sudo service docker stop
- Sudo rm /var/lib/docker/network/files/local-kv.db
- Sudo service docker start
最近、この問題はWindowsで多く発生し始めました。 Dockerの再起動を試すか、Windowsのシャットダウン前に手動でdockerを停止することができます-Dockerは再起動時に正常に起動します。 2018年7月24日、Dockerの問題が公開され、詳細は https://github.com/docker/for-win/issues/1967 で確認できます
これは、ここで説明されているように、Windowsの「高速ブート」との非互換性の問題のようです(ドッカーサービスを再起動するだけです)。
https://github.com/docker/for-win/issues/2722
これは、Dockerおよびfastbootとの非互換性が原因です。 Windowsをシャットダウンする前にすべてのコンテナを確実に停止するか、次の手順を実行してWindowsの電源設定でfastbootを無効にすることができます。
CTRL+R > "powercfg.cpl" > "Choose what the power buttons do" > "Change settings that are currently unavailable" > Deselect "Turn on fast start-up"
Powershellで1つのコマンドでfastbootを無効にすることもできます。
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power\' -Name HiberbootEnabled -Value 0
windowsユーザー: docker description
Windowsシステムでは、CTRL + Cはコンテナを停止しません。そのため、最初にCtrlキーを押しながらCキーを押してプロンプトを戻す(または別のシェルを開く)、次にdocker container lsと入力して実行中のコンテナーを一覧表示し、続いてdocker container stopを押してコンテナーを停止します。そうしないと、次のステップでコンテナを再実行しようとしたときに、デーモンからエラー応答が返されます。
私は同じ問題を抱えていました.CTRL + Cでコンテナを停止したと思いましたが、そうではありませんでした。上記の答えはすべてコンテナが停止するため、ドッカーを再起動するかコンテナを明示的に停止するためです。
私が好む:
docker container ls #list containers running
docker stop [container id] #replace [container id] with the container id running
実行中のすべてのコンテナdocker ps -a -q
を停止してから、マシンのDockerを停止して再起動します。