Error running Docker containers on SD card

Hi community,

I noticed a quiet new behavior that I noticed only on Edge controller and TP600.
When I install Docker, and move it to SD card and try to deploy a container for the first time I get the following error :

docker: Error response from daemon: failed to create shim: OCI runtime create failed: /media/sd/docker/overlay2/97c47323d9dbcdf7618a4757b9eae7f223d95d5f3d7eb2fd0f76ef14676f381f/merged is not an absolute path or is a symlink: unknown.

It seems to have a link with the symbolic link …
The restart of the docker daemon seems to solve the issue but I’d like to find the reason behind and a better way to solve it.

Thanks for your feedback.

Did you move it by specifying the new data-root in the /etc/docker/daemon.json ?

Yes, exactly ! And then I restart the daemon. The sd card is previously formated in ext4.

Thats strange. I have seen that error if symlinks is used instead of updating the daemon.json.

This is the way I move the location of docker.

  1. Stop the daemon
  2. Add/create the daemon.json and add the new data-root location
  3. rsync the old location to the new one
  4. rename the old location (and deletes this when everything is confirmed OK)
  5. Start the daemon

I haven’t tested this on a edge controller/TP600 though… so it could be that these acts differently.

1 Like

I did a quick test. Did you allready have a docker mount, and SD card was allready formatted and mounted once… then formatted once again and/or changed the label. I think you have to update the mounts and not only restart the docker deamon. Maybe safer to reboot the controller. The “failed to create shim” error I also saw in these cases.