Workaround: Docker Container Cannot be Started After Windows Restart

Recently I've been testing out Docker for Windows. You can find more information on my experience here and here. Today, I started getting strange errors when I tried to start a container in docker. The error I was getting was:

Error response from daemon: driver failed programming external connectivity on endpoint cranky_panini: Error starting userland proxy: mkdir /port/tcp:0.0.0.0:38888:tcp:172.17.0.2:38888: input/output error.

I was confused as I was running a PowerShell script I had used before and never got this error.

As it turns out, this is an issue that was reported in March 2017 and which hasn't been resolved yet. You can find more technical details in this GitHub issue: https://github.com/docker/for-win/issues/573

The problem seems to be related to how the virtual machine used by Docker for Windows handles the shutdown process.

Working Around the Issue

One suggested solution is to disable Windows Fast Boot, however this doesn't seem like a correct solution for me. Disabling a Windows feature to get docker to run correctly feels wrong.

The workaround for this issue is to stop docker and start it again. I can confirm that restarting docker worked for me on version 18.06.1-ce

I will update this post with a permanent resolution which doesn't require disabling Windows Fast Boot if I encounter a better resolution.


Published in: Troubleshooting