対応まとめ
- 暫定対応:「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の電源設定オプションを変更する。
-
「コントロール パネル > ハードウェアとサウンド > 電源オプション > 電源ボタンの動作を選択する」の順に移動。
-
「現在利用可能ではない設定を変更します」をクリック。要Admin権限。
-
「高速スタートアップを有効にする」のチェックを外す。
参考