Windows 10上のDocker「エンドポイントでのドライバーが外部接続のプログラミングに失敗しました」


134

$ docker-compose up -dプロジェクトで使用しようとしていますが、次のエラーメッセージが表示されます。

エラー:apiはサービスを開始できませんapi:ドライバーはエンドポイントdataexploration_api_1での外部接続のプログラミングに失敗しました(8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117):ユーザーランドプロキシの開始エラー:mkdir /port/tcp:0.0.0.0:9000:tcp:80.19.0.20.2プロジェクトの立ち上げ中にエラーが発生しました。

たぶん港なのかしら?以前はポート8080を試していました。プロジェクトは元々Macでセットアップされていたので、gitHubからリポジトリを複製しました。


githubチケットへのリンクを追加して、全員がそこに行って賛成できるようにしてください。
PussInBoots

回答:


270

Windows 10 Pro / Docker v17.06.1-ce-win24 / Docker-Compose v1.14.0で、管理モードのWindows Powershell x86を使用して同じエラーメッセージが表示されました。

解決策は、単にDockerを再起動することでした。


Windows 10 Professionalでdockerバージョン18.03.0-ce-win59(16762)を使用しています。Dockerイメージはjenkins / jenkins:2.107.2です。プルした後、このコマンドを使用してをインストールしdocker run -p 8080:8080 --name myJenkins -p 50000:50000 jenkins/jenkins:2.107.2ます。jenkinsを設定した後docker stop myJenkins、他のコマンドウィンドウで使用してホストのWindows 10をシャットダウンします。Dockerを自動的に起動するWindows 10を起動すると、コマンドを使用しdocker start myJenkinsて使い慣れたメッセージが表示されます。ただし、Dockerを再起動すると問題が解決します:)
Charles Wu

1
これがなぜ起こるのか誰か知っていますか?Dockerを再起動するのは面倒そうですが、これを正しく解決する方法はありますか?
Storm Muller

同じ修正が2019年3月に機能しました。DockerDesktopバージョン2.0.0.3(31259)の使用チャネル:安定したビルド:8858db3クライアント:Docker Engine-コミュニティバージョン:18.09.2 APIバージョン:1.39 Goバージョン:go1.10.8 Git commit:6247962ビルド:2019年2月10日04:12:31 OS / Arch:windows / amd64 Experimental:false Win 10バージョン10.0.18346.1(高速版プレリリース)
JohnC

Macでも同じ問題があり、Dockerを再起動しても修正されました...
jesus docker

67

一度発生した場合は、Dockerを再起動することで機能します。私の場合、コンピュータを再起動するたびに発生していました。

この場合は、Fast Startupを無効にしてください。無効にすると、コンピューターが起動するたびにDockerが再起動します。このソリューションはここから取得されました


6
これは答えとして受け入れられるべきです。再起動は機能しますが、煩わしいたびに再起動する必要がある場合
Vitalii

Windows 10でユーザーを切り替えると、このエラーが発生しました
Vasko

58

単にDockerを再起動しても、Windows 10での問題は解決しませんでした。

私の場合、以下の正確な手順で問題を解決しました:

1)「Dockerデスクトップ」を閉じます

2)以下のコマンドを実行します。

net stop com.docker.service
net start com.docker.service

3)「Docker Desktop」を再度起動します

これが他の誰かを助けることを願っています。


3
これは、Dockerを再起動するだけでうまくいきます!また、管理者権限でこのカップルを実行することを忘れないでください
Gad Wissberg

うまくいきましたが、私はいつも管理者権限を持っていません:(
Hassan Tareq '28

3
Dockerサービスを再起動しました。通常、Dockerデスクトップの再起動だけで十分ですが、今回は不十分でした... Windows 10の
docker

これはうまくいった!実際に受け入れられる答えでなければなりません。ありがとう
ドミニクK

thnx、私のために働いた!
G.Mast

9

私もそのエラーが発生しました。エラーが発生する主な理由を知りたい場合は、Dockerがすでに同様のコンテナを実行しているため、問題を解決するには(Dockerの再起動を避けます)、次の操作を行う必要があります。

docker container ls

あなたは次のようなものを得ました:

CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago

これは実行中のコンテナーのリストです。コンテナーID(コピーCtrl+ C)を取ります

次に、このコマンドを実行してプロセスを終了する必要があります(別のイメージを実行させます)。

docker container stop <CONTAINER_ID>

そしてそれだけです!これでコンテナを作成できます。

詳細については、https://docs.docker.com/get-started/part2/にアクセスしてください。


7

私はすでに多くの答えがあることを知っていますが、どれも私のために問題を解決しませんでした。
代わりに、Dockerを工場出荷時のデフォルトにリセットすることで、このエラーメッセージを取り除きました。

ここに画像の説明を入力してください


それを行う前に、Dockerからエラーレポートがありましたか。私の場合、エラーのようなポップアップが表示され、工場出荷時のデフォルトにリセットするよう提案されていました。
Theodosios Asvestopoulos

いいえ、@ TheodosiosAsvestopoulos、私はそのポップアップを取得しませんでした。
jasie

奇妙なことに、今日も同じ問題がありましたが、Dockerの再起動は役に立ちませんでした。非常に大きなイメージをプルするため、工場出荷時のデフォルトにリセットしたくなかったので、Dockerデスクトップを終了して再度開いただけで、機能しました(再起動するのとは異なるアクションのようです)。
Theodosios Asvestopoulos

6

通常、このエラーは、コンテナーを起動しようとしたときに発生しますが、コンテナーが必要とするポートが、通常、最新の不良プロセスの停止の結果と同じDockerによって占有されています。

私にとっての解決策は:

  1. 管理者のようにWindows CMDを開き、次のように入力netstat -oanして、ポートを占有しているプロセス(Dockerがそのプロセスです)を見つけます。

私の場合、Dockerポートは3306 6001 8000 9001です。

  1. ここで、そのポートを解放する必要があるので、このプロセスをPID(カラムPID)で強制終了します。次のように入力します。

    TASKKILL /PID 9816 /F
    
  2. Dockerを再起動します。

  3. 幸せになる。

よろしく。


2

私の場合、問題は、Dockerコンテナー(Nginx)が80ポートを使用し、IISが同じポートを使用することでした。IISで別のポートを設定すると問題が解決する


1

ほとんどの場合、最初に考える必要があるのは、古いサービスが実行されていて、そのポートを使用している場合です。私の場合、イメージ名を変更したため、docker-composeを使用して停止すると(その後)、古いコンテナー(サービス)が停止せず、新しいコンテナーを開始できなくなります。


0

少し遅い回答ですが、ここに残しておくと、他の人の役に立つかもしれません。MacとDockerの両方を何度も再起動した後、Macモハーベで私はしなければなりませんでしたsudo apachectl stop


0
  • これを解決する最も簡単な方法は、Dockerを再起動することです。ただし、場合によっては、ポートで実行されているコンテナーがなくても機能しないことがあります.commandを使用して実行中のコンテナーを確認し、docker psコマンドを使用する前に、クリアされなかったが終了したすべてのコンテナーを確認できますdocker ps -a

コンテナーIDを持つコンテナーがあるとします8e35276e845e。コマンドを使用するdocker rm 8e35276e845edocker rm 8e3、コンテナーを終了できます。最初の3つの文字列は、その特定のDockerコンテナーIDのIDであることに注意してください。したがって、上記のシナリオに応じて8E3のIDである8e35276e845e

  • 再起動しても機能しない場合は、docker-compose.ymlファイルでサービスのポートを変更してみてください。apacheのポートに従って、v-hostのポートを変更する必要があります(ある場合)。これにより、問題。

例:

    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8082:80
    depends_on:
      - mysql_db

に変更する必要があります

apache_server:
    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8083:80
    depends_on:
      - mysql_db

また、特定のvホストも変更する必要があります。

例(上記のシナリオによる):

<VirtualHost *:80> 
    ProxyPreserveHost On
    ServerAlias phpadocker.lk
    ProxyPass / http://localhost:8083/
    ProxyPassReverse / http://localhost:8083/
</VirtualHost>

これは、上記の問題を解決するのに役立ちます。


0

同じ問題を抱える多くのWindowsユーザーの場合、ほとんどの場合(少なくとも私にとっては)Dockerだけを再起動しても機能しないため、コンピューターも再起動することをお勧めします。したがって、次の手順に従うことをお勧めします。

  1. PCを再起動します。
  2. 次に、管理者としてPowerShellを起動し、これを実行します。

    Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private

  3. その後、Dockerを再起動します。

これらの手順を完了すると、問題なく実行できるようになります。お役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.