web-dev-qa-db-ja.com

デーモンからのエラー応答:ドライバーはエンドポイントmodest_aryabhataで外部接続のプログラミングに失敗しました

このチュートリアル

docker build -t myapp_back .でdockerイメージを作成

そして、次を使用してコンテナを実行したい:docker run -p 3000:3000 -d myapp_back

シンプルノード/エクスプレスアプリです

しかし、エラーが発生しています:

C:\ Program Files\Docker\Docker\Resources\bin\docker.exe:デーモンからのエラー応答:ドライバーは、エンドポイントwizardly_wescoff(a7c53e0d168f915f900e3d67ec72805c2f8e4f5e595f6ae3c7fed8e097886a8b)での外部接続のプログラミングに失敗しました:mkdir:t 3000:tcp:172.17.0.2:3000:入出力エラー。

どうしましたか?

私のdockerfile:

FROM node:carbon
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ['npm', 'start']

package.jsonで開始します。

"start": "nodemon src/app.js --exec babel-node"
15
gsiradze

Windowsで次のエラーを解決するには、単にDockerを再起動します(トレイメニューから、または[設定/リセット]で[Dockerを再起動...]オプションを選択します)

Cannot start service YOUR_SERVICE: driver failed programming external connectivity on endpoint ...
23
Troglo

Dockerの既知の問題のようです: https://github.com/docker/for-win/issues/57

試してください:

  1. [設定/デーモン]メニューの[実験機能]を無効にする
  2. ドッカーの再起動
  3. すべてのコンテナを停止します。

すべてのコンテナを停止するには、docker ps -a -q | ForEach { docker stop $_ }を実行します

編集:すべてのコンテナを停止するためのShellScriptコードの作業

for a in `docker ps -a -q`
do
  echo "Stopping container - $a"
  docker stop $a
done
9
VDR

コンピューターを再起動するだけで動作します。

3
gsiradze

コンピュータを再起動することは実際の修正ではなく、単なる回避策であり、頻繁に行う必要があります。

この問題は、Windows 10のデフォルトのシャットダウン動作に関連しています。

実際の修正は、Windowsの高速起動設定を無効にして実現できます。

コントロールパネル->電源オプション->電源ボタンの機能を選択する->現在使用できない設定を変更する->高速起動をオンにする

2
Rodrigo López

Dockerを工場出荷時のデフォルトにリセットすることにより、Windows 10 PCでDockerを動作させることができます。 Dockerの再起動、マシンの再起動が機能しませんでした。

2
Ajit Goel

Linuxで実行しています。 Sudoコマンドを使用してrootとしてdockerを実行すると、正常に機能します。

2
user1928764

Mac Mojaveでは、次のコマンドを実行して、ポートを使用しているプロセスを見つけます。

Sudo lsof -i @localhost:<port_no>

私の場合、ポート8080をチェックしていたので、実行します

Sudo lsof -i @localhost:8080

Http-altはポート8080で実行されており、上記のコマンドを使用してプロセスIDを取得した後、次の方法でプロセスを強制終了できます。

Sudo kill -9 <process_id>

ただし、私の場合、4つのアプリケーションArtemisSe, Mail, Google and Slackはポート8080でhttp-altを使用しています。これらは重要なアプリケーションに見えるため、ポートを変更し、8080ではなく8888でコンテナを実行します。

docker run -it --rm -p 8888:8080 <imageid or image name>
0

Dockerを再起動し、アイコンを右クリックして再起動します。それは私の問題を解決しました

0
iDeveloper