web-dev-qa-db-ja.com

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

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

エラー:api用サービスを開始できませんapi:ドライバがエンドポイントdataexploration_api_1で外部接続のプログラミングに失敗しました(8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117):エラーuserlandプロキシの開始:mkdir /port/t000:.0.20:9:0:0:9:0:9809.20.209:0:159.20809.0.207プロジェクトの起動中にエラーが発生しました。

私はそれが多分港なのか疑問に思いますか?私は以前ポート8080を試していました。プロジェクトはもともとMac上でセットアップされ、私はgitHubからリポジトリを複製しました。

どうもありがとうございました!

91
Sockness_Rogers

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

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

219

一度発生した場合は、Dockerを再起動するとその作業が実行されます。私の場合は、コンピュータを再起動するたびに発生していました。

この場合は、 Fast Startupを無効にする 、またはコンピュータを起動するたびにDockerを再起動します。この解決策は ここ から得られた

57
chomp

Dockerを単に見直すだけでは、Windows 10での問題は解決しませんでした。

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

1)「Docker Desktop」を閉じます

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

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

3)「Docker Desktop」をもう一度起動します

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

エラーが発生する主な理由、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/ をご覧ください。

4

ちょっと遅い答えですが、私はここに残しておきましょう。他の誰かに役立つかもしれませんMacとdockerの両方をたくさん再起動した後のMacモハーベでSudo apachectl stopをしなければなりませんでした。

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

コンテナIDが8e35276e845eであるコンテナがあるとします。docker rm 8e35276e845eまたはdocker rm 8e3コマンドを使用して、コンテナを終了できます。最初の3つの文字列はIDですその特定のdocker container idの。したがって、上記のシナリオによれば8e38e35276e845e

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

例:Apache_server: 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-Hostも変更する必要があります。

例(上記のシナリオによる):<VirtualHost *:80> ProxyPreserveHost On ServerAlias phpadocker.lk ProxyPass / http://localhost:8083/ ProxyPassReverse / http://localhost:8083/ </VirtualHost>

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

0
Hirumina

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