"Error response from daemon: invalid mount config for type" in Docker

I’m running 2 nodes at Win10 with Docker.

After restarting the mashine I’ve shared the drives in Docker, put the command
“docker run … and so the same as usual”
but the node transmit the message “Error response from daemon: invalid mount config for type “bind”: bind source path does not exist: /host_mnt/g/data/identity/storagenode”
as when the shared drive in Docker not shared propertly. Existance of /host_mnt/g/data/identity/storagenode also checked.

The uninstall Docker, restart the mashine, install Docker, put the shared drives, go with “docker run … and so the same as usual” and get the same error.

Then tried to wake only one node with GUI Windows, the node is offline:

Then tried to check all databases according to this post:

and get “OK” status.

Please help, I’m stuck with that.

I would not recommend using docker for windows… How are the drives connected are they network drives?

There is no way to expand on Windows multiple nodes without Docker (except Vadim’s Toolbox, but the TB not fly when I’ve tried it).
The drives in JBOD shelf and attached via expansion board to pc.
This drives works as a nodes already for a long time, but after rebooting I’ve got issue described in topic.

Yea this is an issue with docker though you can’t really trust it, espically if you recently updated windows or docker… Have you tried to install an older version of docker to see if it works? https://documentation.storj.io/setup/cli/docker

I have not roll up update at Docker there is a 2.0.5 version.
And Win not goes to update also (as far as I remember).
Got the node in different place at Win GUI - works fine with latest updates.

What does your docker start command look like?

docker run -d --restart unless-stopped --stop-timeout 300 -p 28967:28967 -p 127.0.0.1:14002:14002 -e WALLET=“x” -e EMAIL=xx" -e ADDRESS=“xxx:28967” -e BANDWIDTH=“50TB” -e STORAGE=“11.5TB” --mount type=bind,source=“G:\data\identity\storagenode”,destination=/app/identity --mount type=bind,source=“G:\data”,destination=/app/config --name storagenode storjlabs/storagenode:latest

ok thanks im gonna spin up an VM to test with docker and windows.

I was able to start no problem inside my VM even with the newest docker installed.

I also started in powershell

Looks like the best and quick way - to reinstall Win 10. If it works.
Then to think about a Linux.

dont understand, if you have Windows why use Docker at all, windoes GUI work perfect, without overhead.

just because need to expand more than 1 node and got some troubles when tried to roll up with a Toolbox.

OK, just made new relise, that can install new nodes with new instalation methid made by Storj

1 Like

Please, use a docker 2.1.0.5 if you still need it, or latest but in wsl2 mode.
The usual trick with this type of errors:

  1. Stop and remove the container
  2. Clear the checkbox for the errored drive in the Docker desktop application under Settings -> Advanced -> File sharing, click the Apply,
  3. select it back and click the Apply again, provide your credentials if asked.
  4. Try to run the storagenode container.

using Docker 2.1.0.5

passed a couple of times.
for now I’ve made:
the distributive install;
roll up Docker 2.1.0.5;
roll up the same commands in Powershell for node installing. the commands are passed and watchtower rolled up too;
nodes with OFFLINE status, but shows UPTIME status.

2020-12-30_14-54-26

2020-12-30_14-46-49

Ok, thanks Vadim, try to look at.
For now there is not so important at what base the nodes rolled (Docker or WIN GUI) - they not works. And it freaks out.

should I use linux shell to expand nodes on Docker after installation wsl2 and linux distr? Or just to move forward as usual in Win power shell?

the current statement is:
Second reinstall of Win10 from scratch;
Roll up Docker 3.0.0 with wsl2 and ubuntu distr;
Then Win Powershell same Docker commands as usual.
1st node ONLINE status, with UPTIME;
2nd node OFFLINE status, with UPTIME.

At 2nd some errors in logs like that:
ERROR orders.XXXXXXXXX failed to archive orders {“error”: "order: ordersfile: rename config/orders/unsent/unsent-orders

Doesn’t matter.

The offline is not related to the version of the Docker though.

If this is the second node in the same network, you should use a different external port in the port forwarding rule and in the -e ADDRESS option. For example -e ADDRESS="xxx:28968".
I assume that you run both nodes on the same PC, the port mapping option in the docker run must have a different external port too, i.e. -p 28968:28967 -p 127.0.0.1:14003:14002 and port forwarding on your router should be from 28968 to 28968 and IP of your PC.
If they are on a different PCs, then you can do not change external ports in the port mapping in the docker run command (except ADDRESS, it must have a different port), then port forwarding would be from 28968 to 28967 and the IP of the second PC.

This mean that your storage actually doesn’t work properly. Please check:

docker exec -it storagenode sh
echo "test" > /app/config/test.txt
cat /app/config/test.txt
rm /app/config/test.txt
exit

Please, post results

So does this mean you were able to over come the bad mount errors? So this is all about the connection now and not the mounts. If your original node was windows the order files arent in the same folder.

1 Like

PS C:\Windows\system32> docker exec -it storagenode2 sh
/app # echo “test” > /app/config/test.txt
/app # cat /app/config/test.txt
test
/app # rm /app/config/test.txt
/app # exit

the command makes a file Test.txt in N:\data, then print “Test”, then removed file Test.txt.

When the problem occured the build of a machine have not any changes and setup of a node the same:

the settings rolls up via Power Shell

1st:
docker run -d --restart unless-stopped --stop-timeout 300 -p 28967:28967 -p 127.0.0.1:14002:14002 -e WALLET=“X” -e EMAIL=“Y1” -e ADDRESS=“Z:28967” -e BANDWIDTH=“50TB” -e STORAGE=“11.5TB” --mount type=bind,source="F:\data\identity\storagenode",destination=/app/identity --mount type=bind,source="F:\data",destination=/app/config --name storagenode storjlabs/storagenode:latest

2nd:
docker run -d --restart unless-stopped --stop-timeout 300 -p 28968:28967 -p 127.0.0.1:14003:14002 -e WALLET=“X” -e EMAIL=“Y2” -e ADDRESS=“Z:28968” -e BANDWIDTH=“50TB” -e STORAGE=“11.5TB” --mount type=bind,source="N:\data\identity\storagenode2",destination=/app/identity --mount type=bind,source="N:\data",destination=/app/config --name storagenode2 storjlabs/storagenode:latest

I’ve just restart the machine.

After of wsl2 integration drives share got dissapeared - no menu in settings, no checks in menu. Should I react some other way or wsl2 makes a drive share by default?
There is also a new menu in Docker:


Should I switch to additional distro (Ubuntu)?