23
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Docker for Windows】500 errorでportに接続できないときの対処法

Last updated at Posted at 2018-07-31

対応まとめ

  • 暫定対応:「Quit Docker」して再度Dockerを起動
  • 恒久対応:電源オプションの「高速スタートアップを有効にする」のチェックを外す。

事象

コンテナ起動時に以下のエラーが出て、コンテナが立ち上がらない、もしくはコンテナは起動するがPortの接続に失敗する。

  APIError: 500 Server Error: Internal Server Error ("driver failed programming external connectivity on endpoint [コンテナ名]: 
  Error starting userland proxy: mkdir /port/tcp:0.0.0.0:5432:tcp:172.17.0.2:5432: input/output error")

原因

コンテナが立ち上がったままWindowsをシャットダウンすると、ポートの開放がうまくいかないケースが存在。
「高速スタートアップを有効にする(推奨)」という、シャットダウン後の起動を高速にするための電源オプションが原因らしい。
※オプションが有効になっていても同様のエラーが再現しないPCもあり。

対処法詳細

暫定対応策

Dockerアイコンを右クリックし、「Quit Docker」でDockerのプログラム自体を停止し、再度起動する。

恒久対応策

Windowsの電源設定オプションを変更する。

  1. 「コントロール パネル > ハードウェアとサウンド > 電源オプション > 電源ボタンの動作を選択する」の順に移動。

  2. 「現在利用可能ではない設定を変更します」をクリック。要Admin権限。

  3. 「高速スタートアップを有効にする」のチェックを外す。

docker_batteryoption.png

参考

23
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?