web-dev-qa-db-ja.com

Docker:ドライバーはエンドポイントWebサーバーで外部接続のプログラミングに失敗しました

私は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).

助けが必要。

43
Jason Bourne

エラーメッセージのEADDRINUSEは、ポート80がドッカーVMで使用されているか、ラップトップで直接使用されていることを示しています。そのポートで実行されているものを停止するか、Dockerコマンドで使用されるポートを変更できます。外部ポート8080に変更するには、次を使用します。

docker run -d -p 8080:80 --name webserver nginx
47
BMitch

Dockerを再起動してください。それは通常私のために動作します。

35
E.N.D

コンテナの1つで同じ問題が発生しました。私はすべてを試しましたが、何も機能しなかったときに、次のことを試し、成功してコンテナを再び起動しました

 - Sudo service docker stop
 - Sudo rm /var/lib/docker/network/files/local-kv.db
 - Sudo service docker start
6
smishra

最近、この問題はWindowsで多く発生し始めました。 Dockerの再起動を試すか、Windowsのシャットダウン前に手動でdockerを停止することができます-Dockerは再起動時に正常に起動します。 2018年7月24日、Dockerの問題が公開され、詳細は https://github.com/docker/for-win/issues/1967 で確認できます

4
webuniverse.io

これは、ここで説明されているように、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

1
atom88

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
0

実行中のすべてのコンテナdocker ps -a -qを停止してから、マシンのDockerを停止して再起動します。

0
Som